문자열 (mystring)과 char (ch)을 입력하라는 프로그램이 있습니다. 그런 다음 입력 된 모든 문자 (ch)를 문자열 (mystring)에서 삭제합니다. 예를 들어 "abcabc"와 char 'a'를 입력하면 결과는 "bcbc"가됩니다. - scanf를 사용할 때 문자열에 공백이 없으면 프로그램이 제대로 작동합니다. "abc abc abc"라고 입력하면 처음 3 글자 만 읽고 (공백까지) 처리합니다. 그런 다음 gets (mystr)를 사용하는 것이 좋습니다. 왜냐하면 모든 휘몰아 치기를 읽을 수 있기 때문입니다. 하지만 gets를 사용할 때 결과는 입력 문자열과 동일하므로 아무 일도 일어나지 않습니다.C 문자열에서 문자 삭제
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 100
int main(int argc, char *argv[])
{
char mystr[N] ,result[N];
char ch;
int i,k;
k=0;
printf("enter string \n");
//gets(mystr);///////////////////////////
//scanf("%s",&mystr);///////////////////
printf("enter char \n");
scanf("%c",&ch);
scanf("%c",&ch);
for (i = 0; i <= strlen(mystr); i++)
{
if (mystr[i] != ch)
{
result[k]=mystr[i];
k++;
}
}
puts(result);
system("pause");
return 0;
}
** **'gets()'를 사용하지 마십시오. 그것은 본질적으로 안전하지 않습니다. –