#include<stdio.h>
#include<string.h>
int main(){
char array[]="Arijit Saha Student";
spaceremover(array);
getch();
return 1;
}
int spaceremover(char a[]){
int i;
// printf("L=%d",strlen(a));
char final[strlen(a)+1];
int count=0;
for(i=0;i<strlen(a);i++)
{
if(a[i]!=' ')
final[count]=a[i];
count++;
}
final[count]='\0';
int j=0;
for(j=0;j<strlen(final);j++)
printf("%c",final[j]);
// printf("\n%s",final);
return 1;
}
使用此示例代码,输出为Arijit.Saha
,但我所需的输出为ArijitSahaStudent
。
为什么我得错了输出?
在哪里。来自哪里?
答案 0 :(得分:6)
错误在于:
if(a[i]!=' ')
final[count]=a[i];
count++;
count++
应包含if
,所以:
if(a[i]!=' ') {
final[count]=a[i];
count++;
}
注意:在if
语句后总是使用花括号被认为是一种很好的编程习惯。
答案 1 :(得分:2)
在for循环中,即使a[i] == ' '
,也会增加计数
因此,当a[i] == ' '
时,您只会增加计数,但不会将final[count]
设置为任何内容。
我假设你写作:
if (a[i] != ' ')
{
final[count] = a[i];
count++;
}
答案 2 :(得分:0)
您没有正确递增计数。它需要在if循环中。这可能更容易让您看到事情是否正确缩进。
#include<stdio.h>
#include<string.h>
int main(){
char array[]="Arijit Saha Student";
spaceremover(array);
return 1;
}
int spaceremover(char a[]){
int i;
// printf("L=%d",strlen(a));
char final[strlen(a)+1];
int count=0;
for(i=0;i<strlen(a);i++)
{
if(a[i]!=' ')
final[count++]=a[i];
}
final[count++]='\0';
int j=0;
for(j=0;j<strlen(final);j++)
printf("%c",final[j]);
// printf("\n%s",final);
return 1;
}
答案 3 :(得分:0)
在循环中,如果[i]不等于空格
,则计数应该增加 if(a[i]!=' ')
final[count]=a[i];
count++;
if(a[i]!=' ')
final[count++]=a[i];
//count++;