解题思路:
注意事项:
参考代码:
#include
#define N 100
int main()
{
char a[100];
int i,j;
i=0;j=0;
while(gets(a))
{
for(i=0;i<N;i++)
{
if(a[i]=='\0')
{
break;
}
j++;
}
for(i=0;i<j;i++)
{
if(a[i]!=' ')
{
printf("%c",a[i]);
}
}
printf("\n");
}
return 0;
}
这个代码是错误的,是第一次写出来的,会发现当你第一次输入一个很长的字符串后,会把每一位都记在一个数组中。比如我第一次输入10个字符,则a[0]到a[9]都代表着一个字符,如果我在第二次只输入了一个三个字符的字符串,那我只应该存在了a[0]到a[2]中,但是我再输出时,会将第一次所记录的a[3]到a[9]都输出出来,从而导致结果错误,所以由这里就可以知道我们不应该把每个字符串中的每个字符都存起来,于是经过修改得到以下的程序:
#include
#include
#define N 100
int main()
{
char a[100];
int m,n;
while(gets(a))
{
m=strlen(a);
for(n=0;n<m;n++)
{
if(a[n]!=' ')
{
printf("%c",a[n]);
}
}
printf("\n");
}
return 0;
}
这个程序用到了strlen,strlren可以直接得出字符串的有效长度,使用这种函数,我们就可以不再去一个一个赋值从而得知长度,同时也可以避免出现像第一个程序出现的那种情况。这个程序中输出了不是空格的字符,从而起到了筛选掉空格的效果。
0.0分
9 人评分
printf基础练习2 (C语言代码)浏览:648 |
C语言训练-素数问题 (C语言代码)浏览:1065 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:561 |
printf基础练习2 (C语言代码)浏览:955 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:1072 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:564 |
三角形 (C++代码)递推浏览:825 |
【计算球体积】 (C语言代码)浏览:1158 |
杨辉三角 (C语言代码)浏览:505 |
C语言程序设计教程(第三版)课后习题12.5 (C语言代码)浏览:799 |