지금까지이 코드를 작성했지만 최종 출력 (공란)을 얻지 못했습니다. 내가 예상 한 출력은 Hello World
문자열을 넣고 o
을 i
으로 바꾸면 문자열이 Helli Wirld
이됩니다. 하지만 최종 결과물에는 아무 것도 없습니다. substitute()
에서문자 바꾸기
char * substitute(char *, char, char);
int main(void){
char arr[255];
char i,j;
printf("Enter a string: ");
gets(arr);
printf("Find a char: ");
scanf(" %c", &i);
printf("Replace with: ");
scanf(" %c", &j);
printf("Final output: ");
printf("%s", substitute(arr, i, j));
return 0;
}
char * substitute(char *data, char find, char replace){
while(*data!='\0'){
if(*data==find){
*data=replace;
}
data++;
}
return data;
}
에 의해 당신은 반환하고 대체하지 않습니다 문자열의 끝을 가리키는 포인터. – geoffspear
@Wooble 함수에서? 나는 그 성격을 대체하지 않습니까? – user3568692
원래 문자열의 문자를 바꾸지 만 문자열의 시작 부분이 아니라 끝 부분의 포인터를 반환합니다. – geoffspear