웬일인지, 나는 이것을 작동시킬 수 없다! 아무도 내가 잘못한 곳을 말해 줄 수 있습니까? 이것은주고 문자열의 단어를 반대하도록되어 (즉, "테스트 A는 이것이다"에서 "테스트입니다"에서) 당신이 기대처럼 서로 문자를 추가 할 수 없습니다문자열의 역 단어
#include <stdio.h>
#include <stdlib.h>
char *reverse(char const *input)
{
char *ret = (char *)malloc(sizeof(char) * strlen(input));
int length = 0;
int numWords = 1;
int i;
for(i=0; input[i]!=NULL; i++)
{
length++;
if(input[i]==' ')
numWords++;
}
char words[numWords];
int currentWord = numWords;
for(i=0; input[i]!=NULL; i++)
{
if (input[i]==' '){
currentWord--;
}else{
words[currentWord] = words[currentWord] + input[i];
}
}
for(i=0; i < numWords; i++)
{
ret = ret + words[i];
}
return ret;
}
int main(int argc, char **argv)
{
int nTestcase = 0;
int i = 0;
char inputstr[100];
char *reversedStr = NULL;
scanf("%d\n", &nTestcase);
for (i = 0; i < nTestcase; i++)
{
fgets(inputstr, 100, stdin);
reversedStr = reverse(inputstr);
printf("%s\n", reversedStr);
free(reversedStr);
memset(inputstr, 0, 100);
}
return 0;
}
특정 질문이 있으십니까? 어느 부분이 작동하지 않습니까? –
코드 단어 [currentWord] = 단어 [currentWord] + 입력 [i]에서이 행의 의미는 무엇입니까? ??? 너는 2 개의 특성을 추가하고 또 다른 한개 안에 그것을 저장하고있다 !! – 999k
너무 복잡해 보입니다. 왜 단어의 개수에 관심이 있으십니까? 끝에서 시작하여 뒤로 검색하여 공백을 찾습니다. 하나를 찾으면 공백 다음의 문자로 시작하여 다음 공백 전에 끝나는 문자열 부분을 인쇄하십시오. – Caleb