문자열의 모든 공백을 "-"로 대체하고 문자열을 출력하는 함수에 대해 몇 줄의 코드를 작성했습니다. 코드가 컴파일되지만 실행될 때 "새 문자열은 대체 코드 0입니다."라는 내용이 인쇄됩니다. 아무도 내 코드가 잘못되어 가고있는 곳을 말해 줄 수 있습니까? char가 함수에 전달되는 방식과 관련이 있다고 가정합니다.변수를 함수에 전달하는 문제
//Ben Adamson
//v1.0
#include <stdio.h>
#include <conio.h>
void replace(char s)
{
int num = 0;
while (s != '\0')
{
if (s == ' ')
{
s = "-";
num++;
}
s++;
}
printf("New string is %c with %d replacements", s, num);
}
int main()
{
char str = "The cat sat";
replace(str);
_getch();
return 0;
}
문자열 리터럴은 수정할 수 없습니다. 'char str [] = "를 사용하십시오. 대신 고양이가 앉았습니다; (당신이''char str = ""을 의미한다고 가정 할 때,''char * str = "에 의해 고양이가 앉았다";;) – haccks
올바른 방향으로 나를 설정 해주는 덕분에 감사합니다. 아래의 전체 솔루션을 해결했습니다. – BenAdamson
이 코드에는 몇 가지 컴파일 오류 및 경고가 있습니다. –