#1 15.05.08 13:15
[help] подскажите в си++
есть такой вод код:
Код::
#include <stdio.h>
#include <conio.h>
void reverse_string(char *string){
int size = 0;
while(string[size]!= '\0')
{
size++;
}
if(size != 0)
{
char* result = &string[size-1];
for(int i = 0;i<(size/2);i++)
{
char vs = *result;
*result = string[i];
string[i] = vs;
result--;
}
}
}
void main()
{
char string[100];
puts("Input string: ");
gets(string);
reverse_string(string);
puts(string);
}он переворачивает строку наоборот, т.е. hello world -> dlrow olleh
а надо чтобы менялся только порядок букв в слове hello world -> olleh dlrow
Подскажите как это сделать:)
Исправлено Nuts@ (15.05.08 13:36)
Offline
#8 15.05.08 20:37
Re: [help] подскажите в си++
Jaguar, +1. Читаешь посимвольно, до пробела в стек, как пробел - из стека всё выкладываем, пробел тоже выкладываем и потом по новой. Код неохота и некогда :)
Исправлено Kosh_Mar (15.05.08 20:37)
Offline
#9 15.05.08 21:11
Re: [help] подскажите в си++
Код: C:
void main() { char string[100]; puts("Input string: "); gets_s(string); int len = (int) strlen(string); char* temp = string; for(int i = 0; i < len; i++) { if(string[i] == ' ') { string[i] = 0; reverse_string(temp); string[i] = ' '; temp = &string[i]+1; } } reverse_string(temp); puts(string); }
на скорую руку... если в качестве разделителей рассматривать лишь пробелы
Исправлено kvazimodo (15.05.08 21:12)
Offline
#10 15.05.08 21:34
#11 16.05.08 01:06
#12 16.05.08 22:26
#13 17.05.08 00:11
#14 17.05.08 01:04
Re: [help] подскажите в си++
Nuts@ написал(а):
препод докопался, надо еще сделать проверку на полиандром...это когда слово читается с обоих сторон одинаково
Очень интересно, чем препод объясняет необходимость такого теста? У нас за такой тест кое-кто из преподов убил бы...
Offline

