質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
char

charは文字データ型を指します。一文字分の文字コードの格納を想定としている型です。

ポインタ

ポインタはアドレスを用いてメモリに格納された値を"参照する"変数です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

1回答

865閲覧

C++ charへのポインタ インクリメント、デクリメント

novice114

総合スコア5

char

charは文字データ型を指します。一文字分の文字コードの格納を想定としている型です。

ポインタ

ポインタはアドレスを用いてメモリに格納された値を"参照する"変数です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2021/11/27 03:27

文字列を反転する関数 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*/

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

C++

1 for(; --p > s++;){ // ここでsは次の文字を指すから 2 char tmp = *s; // 最初の文字は入れ替え対象から外れる 3 *s=*p; 4 *p=tmp; 5 }

C++

1 for(; --p > s; s++){ // ここでsは変化しないから 2 char tmp = *s; // 最初の文字も入れ替え対象 3 *s=*p; 4 *p=tmp; 5 // s++ はここで行われる 6 }

[ところで] コレ↓でいいぢゃん。

C++

1#include <iostream> 2#include <algorithm> 3#include <string> 4 5int main() { 6 using namespace std; 7 cout << "反転したい文字列を入力してください..." << endl; 8 string s; 9 cin >> s; 10 reverse(s.begin(), s.end()); 11 cout << s << endl; 12}

投稿2021/11/27 03:41

編集2021/11/27 08:05
episteme

総合スコア16612

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問