C 什么';在这个程序中删除多余的空格是错误的吗?
我试图写一个程序来消除额外的间距。但它从未返回所需的输出。我能知道这里出了什么问题以及如何纠正它吗C 什么';在这个程序中删除多余的空格是错误的吗?,c,C,我试图写一个程序来消除额外的间距。但它从未返回所需的输出。我能知道这里出了什么问题以及如何纠正它吗 #include<stdio.h> main() { char strin[150]; int n,i; printf("Number of words : "); scanf("%d",&n); printf("Enter Input: "); for(i=0;i&l
#include<stdio.h>
main()
{
char strin[150];
int n,i;
printf("Number of words : ");
scanf("%d",&n);
printf("Enter Input: ");
for(i=0;i<n;i++)
{
scanf("%c",&strin[i]);
}
for(i=0;i<n;i++)
{
if(strin[i]==" ")
continue;
else
printf("%c",strin[i]);
}
}
#包括
main()
{
charstrin[150];
int n,i;
printf(“字数:”);
scanf(“%d”和“&n”);
printf(“输入:”);
对于(i=0;i使用''
而不是''
检查单个字符
使用strcmp()
检查多个字符或整个字符串使用'
而不是'
检查单个字符
使用strcmp()
检查多个字符或整个字符串如果要删除字符串中的所有空格并将其存储,而不仅仅是打印,则可以使用以下简单功能:
void rmspaces(char *str)
{
const char *dup = str;
do {
while (isspace(*dup)) {
++dup;
}
} while (*str++ = *dup++);
}
然后可以像这样调用函数:
rmspaces(str);
如果要删除字符串中的所有空格并将其存储,而不是仅打印,可以使用以下简单函数:
void rmspaces(char *str)
{
const char *dup = str;
do {
while (isspace(*dup)) {
++dup;
}
} while (*str++ = *dup++);
}
然后可以像这样调用函数:
rmspaces(str);
在处理字符串时,您绝对需要考虑终止'\0'
!您要求“字数”…但是n
,查看代码,表示字符数。建议:打开编译器可以产生的最大警告。使用if(strin[i]='')
删除了输入中的所有空格和任何空格。现在,我如何在它们之间只添加一个空格?使用调用为gcc-Wall-Wextra-g augustus.C-o augustus prog
的函数编译上面的C代码augustus.C
。您应该会收到许多警告。改进augustus.C
以不添加空格。然后使用调试器了解行为在处理字符串时,您绝对需要考虑终止'\0'
!您要求“字数”…但是n
,查看代码,表示字符数。建议:打开,记住编译器可以产生的最大警告。使用if(strin[i]='')
删除了输入中的所有空格和任何空格。现在,我如何在它们之间只添加一个空格?使用调用为gcc-Wall-Wextra-g augustus.C-o augustus prog
的函数编译上面的C代码augustus.C
。您应该会收到许多警告。改进augustus.C
以不添加空格。然后使用调试器了解行为你的节目是什么