将输入的数据中的开头,结束的空字符去掉,并将大写字符转换成小写

#include <stdio.h>
#include
<stdlib.h>
#include
<string.h>
#include
<ctype.h>
//功能:将输入的数据中的开头,结束的空字符去掉,并将大写字符转换成小写
//用途:用于规范输入
void transfStr(char *dest, int flag)
{
char *ptr;
int len;

ptr
= dest;//将一个数组的首地址给它

while (isspace(*ptr))//这里是用来去掉开头的空格
ptr++;//只是改变了ptr的指向

len
= strlen(ptr);
if (ptr > dest)//比较两个数组的指向
memmove(dest, ptr, len+1);//将数据搬到了数据的开头

ptr
= dest+len-1;//prt指向dest的最后

while (isspace(*ptr))//用于去掉最后的空格
ptr--;

*(ptr+1) = '\0';//最后一个字符加上字符串结束符

ptr
= dest;//让ptr指向数组最开头

if (flag == 1)
while (*ptr!='\0')//如果没有到字符串最后
{
*ptr = tolower(*ptr);//将大写字母转换成小写
ptr++;
}
}
int main()
{
char buf[80];
printf(
"input:");
fflush(stdout);
fgets(buf,
80,stdin);
printf(
"*%s*\n",buf);
transfStr(buf,
1);
printf(
"*%s*\n",buf);

return 0;
}
原文地址:https://www.cnblogs.com/hnrainll/p/2039933.html