int ileZnakow=0;
for(unsigned int i=0; i<tekst.size(); ++i){
ileZnakow++;
}
Dopóki nie zrozumiesz że powyższy kod jest tym samym co:
int ileZnakow=tekst.size();
To wróć do totalnych podstaw z podstaw.
W c++ to powinno wyglądać jakoś tak:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string tekst="tekst do odwrocenia";
string rev(rbegin(tekst),rend(tekst));
cout<<rev<<endl;
return 0;
}
W obu przypadkach NIE MASZ
odwróconego napisu jak napisano w zadaniu.
Co do kodu w C, czy rozumiesz że to:
``` for(int i=ileZnakow-1; i>=0; --i){
``` char znak=tekst[i];
``` *tmp=znak;
``` printf("%c", *tmp);
``` }
jest dokładnie tym samym co to:
for(int i=ileZnakow-1;i>=0;--i) printf("%c",tekst[i]);
?
Jedynie wywaliłem zbędne "ruchy ciała"
Czyli cały kod po optymalizacji i eliminacji zbędnych części musi wyglądać jakoś tak:
#include <stdio.h>
#include <string.h>
int main()
{
const char *tekst="tekst do odwrocenia";
for(int i=strlen(tekst)-1;i>=0;--i) printf("%c",tekst[i]);
return 0;
}
Ty olewasz wszystkie sensowne rady od wszystkich na tym forum, już ci podałem co musisz zrozumieć zanim zaczniesz coś kombinować z c-string
'ami