Russian Qt Forum

Программирование => Алгоритмы => Тема начата: Astrologer от Ноябрь 05, 2010, 09:59



Название: Перевернуть строку, не пользуясь дополнительным буфером
Отправлено: Astrologer от Ноябрь 05, 2010, 09:59
Вопросик от известного основателя Fog Creek.

http://russian.joelonsoftware.com/Articles/Interviewing.html

Код
C++ (Qt)
string str = "abcdefghijkl";
 int i,count;
 int len = str.length()-1;
 for (i=len, count=0; i > count; i--, count++)
 {
     char a = str[i];
     str[i] = str[count];
     str[count] = a;
 }
 


Название: Re: Перевернуть строку, не пользуясь дополнительным буфером
Отправлено: spectre71 от Ноябрь 05, 2010, 13:48
На "C".

Код
C
char* revStr(char *str) {
 if(!str) {return NULL;}
 for(char c, *s=str, *e=str+strlen(str)-1; s<e; ++s,--e) {
   c = *s; *s = *e; *e = c;
 }
 return str;  
}