文字列を反転する関数 str_rvs(char* s) を作りました。 ("abc" → "cba" という具合です。)
以下のプログラム中のfor 文で for(; --p > s++;)
と for(; --p > s; s++)
違いを誰か教えていただけませんか?
模範解答はfor(; --p > s; s++)
となっていて、自分はfor(; --p > s++; )
として以下のプログラムを作成したのですが、出力結果で最初の一文字が無視されてしまいます。
C++
1#include <iostream> 2using namespace std; 3 4void str_rvs(char* s){ 5 char* p=s; 6 while(*p) 7 p++; 8 for(; --p > s++;){ 9 char tmp = *s; 10 *s=*p; 11 *p=tmp; 12 } 13} 14 15int main(){ 16 cout << "反転したい文字列を入力してください..." << endl; 17 char s[10]; 18 cin >> s; 19 str_rvs(s); 20 cout << s << endl; 21}
C++
1/* 出力結果 2反転したい文字列を入力してください... 3aiueo 4aoeui 5*/
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。