首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言菜鸟遇到的有关问题

2012-03-03 
C语言初学者遇到的问题其中headspace()和tailspace()的功能是删除一个字符串中的前导和后继空格代码运行是

C语言初学者遇到的问题
其中headspace()和   tailspace()的功能是删除一个字符串中的前导和后继空格
代码运行是遇到问题

#include <stdio.h>
main()
{   void   headspace();
    void   tailspace();
char   s[20];
gets(s);
puts(s);
headspace(s);
puts(s);
tailspace(s);
puts(s);
}
headspace(char   s[])
{int   i,j;
  for(i=0;s[i]==32;I++);
if(i==0)return;
for(j=i;s[j]!=’\0’;j++)   s[j-i]=s[j];
s[j-i]=’\0’;
}
tailspace(char   s[])
  {int   i=0,k;
while(s[i]!=’\0’)I++;
for(k=i-1;s[k]==32;k--);
s[k+1]= '\0 ';
}


[解决办法]
#include <stdio.h>

void headspace(char* s)
{
int i,j;
for(i=0;s[i]==32;i++);
if(i==0)
return;
for(j=i;s[j]!= ' \0 ';j++) s[j-i]=s[j];
s[j-i]= '\0 ';
}
void tailspace(char* s)
{
int i=0,k;
while(s[i]!= '\0 ')
i++;
for(k=i-1;s[k]==32;k--)
;
s[k+1]= '\0 ';
}

int main()
{
char s[20];
gets(s);
puts(s);
headspace(s);
puts(s);
tailspace(s);
puts(s);
return 0;
}
[解决办法]
while(s[i]!=’\0’)I++;
//这里的 '\0 ' 中的 ’ 是全角的 !!
[解决办法]
headspace 中也是一样的问题!

程序要求是 半角的E文字符,
修改一下就可以了 ~
[解决办法]
直接写 0 就可以了
while(s[i] != 0)
因为 '\0 '的ascII码是 0
这样写不容易出错

再简单就是while(!s[i])

热点排行
Bad Request.