如题所述
int main()
{
char str[256];
gets(str);
int n = strlen(str);
if(n<=0)
return 0;
char *p = str;
p += n-1; //把p的指针移动到字符串的末尾
while(*(--p)==' ')
{
*p = '\0';
} //指针由末尾向前移动,遇到空格就把空格替换成'\0',也就是字符串的结束符
puts(str);
return 0;
}
{
char str[256];
gets(str);
int n = strlen(str);
if(n<=0)
return 0;
char *p = str;
p += n-1; //把p的指针移动到字符串的末尾
while(*(--p)==' ')
{
*p = '\0';
} //指针由末尾向前移动,遇到空格就把空格替换成'\0',也就是字符串的结束符
puts(str);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-05-28
例如:数组变量中保存的字符串是"abc ",保存在内存的数据是这样的:
0x61,0x62,0x63,0x20,0x20,0x20,0x00,0x00……
使用strlen可以计算出字符串的长度,然后使用指针指向数组中和字符串长度对应的那个元素,然后循环向前判断依次判断是否等于0x20,如果等于0x20则将其数值替换为0x00,找到一个不是0x20的元素则停止循环,循环的次数要小于字符串长度。
以上,就OK了。 0x00数据其实就是字符串的结束符。追问
0x61,0x62,0x63,0x20,0x20,0x20,0x00,0x00……
使用strlen可以计算出字符串的长度,然后使用指针指向数组中和字符串长度对应的那个元素,然后循环向前判断依次判断是否等于0x20,如果等于0x20则将其数值替换为0x00,找到一个不是0x20的元素则停止循环,循环的次数要小于字符串长度。
以上,就OK了。 0x00数据其实就是字符串的结束符。追问
能不能把回答换成c语言程序的形式?谢谢。。。。