[英]Space remove from String
#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
。 為什么我得到錯誤的輸出? 哪里了。 是從哪里來的?
錯誤在這里:
if(a[i]!=' ')
final[count]=a[i];
count++;
count++
應該包含在if
,因此:
if(a[i]!=' ') {
final[count]=a[i];
count++;
}
注意:在if
語句之后始終使用花括號被認為是一種良好的編程習慣。
在for循環中,即使a[i] == ' '
您也要增加計數。
因此,當a[i] == ' '
您只會增加計數,而沒有將final[count]
設置為任何值。
我想你要寫:
if (a[i] != ' ')
{
final[count] = a[i];
count++;
}
您沒有正確增加計數。 它必須在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;
}
在循環中,如果a [i]不等於空格,則計數應增加
if(a[i]!=' ') final[count]=a[i]; count++;
if(a[i]!=' ')
final[count++]=a[i];
//count++;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.