Здравствуйте Кодт, Вы писали:
К>1) использовать std::string вместо статического массива
вот мой (ещё один ламерский

) код:
#include<iostream>
#include<string>
void main(void){
std::string string;
char temp;
int len, mid;
std::cout << "Lamer, vvedi string\n";
std::cin >> string;
len = string.size()-1;
mid = len / 2;
for(int i = 0; i <= mid ;i++){
temp = string[i];
string[i] = (char)string[len-i];
string[len-i] = temp;
}
std::cout << string<<"\n";
}
К>2) использовать указатели там, где у тебя индексы
Но по-моему от этого мало чего не изменится (или опять оптимизация за счёт лишней разиндексации?)
вот ещё один кусочек(если кому покритиковать охота

):
#include<iostream.h>
#include<string.h>
void main(void){
char Text[] = "Hi! It's fun!";
char *string, *p1, *p2;
char temp;
int len;
string = new char[sizeof(Text)];
strcpy( string, Text);
len = strlen(string)-1; // нуль нам не нужен
for(p1 = string, p2 = string+len; p1!=p2; p1++,p2--){
temp = *p2;
*p1 = *p2;
*p1 = temp;
}
cout << string<<"\n";
delete[] string;
}
К>3) использовать системную функцию strrev
вот это самое прямое — нафиг писать то, что уже есть, делает то что нужно и вроде себя зарекомендовало, хотя со вводом char * только лишние мороки, на мой взгляд того не стоящие.