특정 형식으로 문자열을 역순으로 원합니다.C의 문자열의 위치를 반대로
예를 들어, "My name is Nishant"
은 "Nishant is name My"
으로 변환되어야합니다. mid
, number_of_words
및 exchange
의 제정신 정의에 대한
for (i = 0; i < mid; i++)
exchange(words[i], words[number_of_words - i]);
:
특정 형식으로 문자열을 역순으로 원합니다.C의 문자열의 위치를 반대로
예를 들어, "My name is Nishant"
은 "Nishant is name My"
으로 변환되어야합니다. mid
, number_of_words
및 exchange
의 제정신 정의에 대한
for (i = 0; i < mid; i++)
exchange(words[i], words[number_of_words - i]);
:
강사에게 감사드립니다. 숙제 인 경우 직접 작성해야합니다.
약간의 힌트가 있습니다. 끝에 NUL 터미네이터를 치기 전까지 배열의 각 문자를 반복하는 char 포인터를 사용하십시오. 이제 공간을 칠 때까지 반대 방향으로 반복합니다. 장소를 다른 포인터에 저장하고 앞으로 이동 한 다음 출력 버퍼에 NUL을 포함하지 않고 각 문자를 복사합니다.
이제 장소를 저장 한 다른 포인터에서 마지막 공간의 위치를 검색하고 다시 백업하십시오. 당신이 앞으로 나아갈 때 실제로 NUL뿐만 아니라 NULL-ASCII '\ 0'또는 0 바이트의 공간을 만날 때 멈출 필요가 있습니다.
시작 부분에서 앞으로 반복 할 때 어떤 종류의 목록에서 각 공백의 위치를 저장하면 조금 더 빠릅니다. 그렇게하면 각 문자열에 대해 짧은 반복을 사용하여 전체 문자열에 대해 역순으로 반복 할 필요가 없습니다. 이 코드는 좀 더 복잡 할 것입니다.
효율성이 향상되면 개별 영어 문장과 같은 짧은 문자열에 대해서는 중요하지 않지만 메모리로 방금 읽은 큰 파일을 뒤집어 쓰는 경우가 많습니다.
지금까지 무엇을 가지고 계셨습니까? – Codo
[문장에서 반전 단어] (http://stackoverflow.com/questions/3276582/reversing-words-in-a-sentence), [문장을 뒤집는 C 프로그램] (http://stackoverflow.com)/questions/4705069/c-program-on-reversing-a-sentence) – outis
피에르가 말한 것은 무엇입니까? 아, 맞아. – slezica