입력란에 공백이있는 문자열을 입력하고 공백을 '\ 0'NULL 문자로 바꿉니다. 이제 문자열을 출력 할 때 첫 번째 공백 문자 인 첫 번째 NULL 문자까지만 예상하지만 원래 문자열은 가져오고 있습니다. 여기null 문자가 포함 된 문자열 인쇄
이의 잘못은 무엇 코드 -
#include<stdio.h>
int main(){
char a[1000];
int length, i = 0;
length = 0;
scanf("%[^\n]s", a);
while(a[i]!='\0')
i++;
length = i;
printf("Length:%d\n", length);
printf("Before:%s\n", a);
for(i=0;i<length;i++){
if(a[i] == " ")
a[i] = '\0';
}
printf("After:%s\n", a);
return 0;
}
입니까?
는 'A [I] ==' '' '이 [I] ==' ''와 동일하지 않다 (도 ctype.h 포함주십시오). – DCoder
그리고 디버깅 정보와 모든 경고가 활성화 된 상태에서 컴파일하는 습관을 갖춰주십시오. 리눅스에서'gcc -Wall -g'를 사용하여 컴파일하면 실수를 잡는 데 도움이되는 경고 메시지가 나타납니다. –
@DCoder 답변으로 게시해야합니다. –