两头堵模型
程序员文章站
2022-07-14 18:34:01
...
求非空字符串的长度并输出字符串
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int fun(char* p, int* n)
{
if (p == NULL || n == NULL)
{
return -1;
}
int begin = 0;
int end = strlen(p) - 1;
//从左边开始
//若果当前字符为空,且没有结束
while (isspace(p[begin]) && p[begin] != 0)
{
begin++;//位置向右移动一位
}
//如果当前字符为空,且没有结束
while (p[end] == ' ' && p[end] != 0)
{
end--;//往左移动
}
*n = end - begin + 1;
return 0;
}
int fun2(char* p, int* buf)
{
if (p == NULL || buf == NULL)
{
return -1;
}
int n = 0;
int begin = 0;
int end = strlen(p) - 1;
//从左边开始
//若果当前字符为空,且没有结束
while (p[begin] == ' ' && p[begin] != 0)
{
begin++;//位置向右移动一位
}
//如果当前字符为空,且没有结束
while (p[end] == ' ' && p[end] != 0)
{
end--;//往左移动
}
n = end - begin + 1;
strncpy(buf, p + begin, n);
return 0;
}
int main()
{
char* p = " sdjhfjdsh ";
int n = 0;
int ret = 0;
char buf[100] = { 0 };
ret = fun(p, &n);
if (ret != 0)
{
return ret;
}
printf("n = %d\n", n);
ret = fun2(p, buf);
if (ret != 0)
{
return ret;
}
printf("buf = %s\n", buf);
printf("\n");
system("pause");
return 0;
}
上一篇: 项目开发中的字符串模型---两头堵模型