c语言中有不少处理string类型的函数,今天简单的使用了一下isspace()函数,自我实现调用了一下。数组
包含在ctype.h头文件中
函数原型:函数
int isspace(int c);
函数功能
判断输入字符是否为空格/回车/制表符等
函数参数:
获取实参char类型的字符
函数返回值:
若是获取到的字符是空格/回车/制表符等,返回非0值(即真);不然返回0spa
1 #include<stdio.h> 2 #include<ctype.h> 3 int main(void) 4 { 5 char arr[32]=" hello world "; 6 printf("<%s>\n", arr); 7 char*r = arr; 8 char*p = r; 9 char*q = arr + strlen(arr)-1; 10 while(isspace(*p)) 11 p++; 12 while(isspace(*q)) 13 q--; 14 while(p <= q) 15 *r++=*p++; 16 *r ='\0'; 17 printf("<%s>\n", arr); 18 return0; 19 }
1 int myIsspace(char c) 2 { 3 if(c =='\t'|| c =='\n'|| c ==' ') 4 return1; 5 else 6 return0; 7 }
在直接调用isspace()函数时,要谨慎使用,在不一样的操做平台上,可能会有崩溃行为,建议本身实现一个isspace()函数。指针
这里我调用isspace()函数主要实现消除字符串两边的空格或者其余符号,例如:" hello heima "消除空格以后的格式为:"hello heima"code
消除实现思想:
1. 定义两个指针p,q分别指向字符串头和尾;
2. 再建立一个临时指针r来存放字符串数组arr的首地址:
3. p,q碰见空格就p++和q–;一直循环直至非空。blog
如图:
字符串
具体实现Demo:(这里使用自定义isspace()函数)get
1 #include<stdio.h> 2 #include<string.h> 3 int myIsspace(char c) 4 { 5 if(c =='\t'|| c =='\n'|| c ==' ') 6 return1; 7 else 8 return0; 9 } 10 int main(void) 11 { 12 char arr[32]=" hello world "; 13 printf("<%s>\n", arr); 14 char*r = arr; 15 char*p = r; 16 char*q = arr + strlen(arr)-1; 17 while(myIsspace(*p)) 18 p++; 19 while(myIsspace(*q)) 20 q--; 21 while(p <= q) 22 *r++=*p++; 23 *r ='\0'; 24 printf("<%s>\n", arr); 25 return0; 26 }
消除结果以下所示:原型