
プログラムを以下のように書いたのですが、どこがどう違うのか分からず、お手上げ状態です。
どこを直せばいいのでしょうか?
/* 文字列の並びを反転させる */
#include <stdio.h>
void rev_string(char s[])
{
int len,i;
len = rev_string(char [s]);
for (i = 0; i < len / 2; i++){
char temp = s[i];
s[i] = s[len-i-1];
s[len-i-1] = temp;
}
}
int main(void)
{
char str[128];
printf("文字列を入力してください:");
scanf("%s", str);
printf("文字列\"%s\"を反転したものは%sです。\n", str, rev_string(str));
return 0;
}
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
No.2です。
rev_stringの引数を変えないのであれば、printfの結果表示を工夫しないとダメです。
反転前の文字列を表示 → 反転処理 → 反転後の文字列表示 …という流れで。
#include <stdio.h>
#include <string.h>
void rev_string(char s[])
{
int len, i;
len = strlen(s);
for (i = 0; i < len / 2; i++) {
char temp = s[i];
s[i] = s[len - i - 1];
s[len - i - 1] = temp;
}
}
int main(void)
{
char str[128];
printf("文字列を入力してください:");
scanf("%s", str);
printf("文字列\"%s\"を反転したものは", str);
rev_string(str);
printf("%sです。\n", str);
return 0;
}
No.2
- 回答日時:
printfでrev_stringを呼び出す前に事前に変換する方法に変えたほうが良いですね。
文字列入力用のバッファと変換用のバッファを用意して、rev_stringの引数として与える。
以上を踏まえると、以下の様な感じのソースに。
#include <stdio.h>
#include <string.h>
void rev_string(char sin[], char sout[])
{
int len, i;
len = strlen(sin);
for (i = 0; i < len; i++) {
sout[i] = sin[len - i - 1];
}
sout[i] = NULL;
}
int main(void)
{
char strin[128], strout[128];
printf("文字列を入力してください:");
scanf("%s", strin);
rev_string(strin, strout);
printf("文字列\"%s\"を反転したものは%sです。\n", strin, strout);
return 0;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
確定申告しなかった・無申告の人をどうやって見つけるのか元国税調査官に聞いてみた
無申告の方などを対象に税務調査を行う国税局の元税務調査官さんに、どう無申告を探すのか聞いてきました。
-
文字列の反転
C言語・C++・C#
-
c言語でポインタ変数を用いた配列の反転操作
C言語・C++・C#
-
c言語の文字列の逆順のプログラムがわかりません
C言語・C++・C#
-
4
getchar分を用いて入力された文字列を逆順で出力するプログラム
C言語・C++・C#
-
5
正負を反転させて出力するプログラム
C言語・C++・C#
-
6
C言語の課題で困っています;
C言語・C++・C#
-
7
困っています
C言語・C++・C#
-
8
数字の位ごとの値を表示するプログラム
C言語・C++・C#
-
9
文字列を後ろから1文字ずつ表示する
C言語・C++・C#
-
10
反転した数値を表示させるやり方
C言語・C++・C#
-
11
全角文字を含んだ文字の並びを逆順にするには?
C言語・C++・C#
-
12
*をユーザーが入力した数字の数だけ表示するプログラムの作り方を教えてください
C言語・C++・C#
-
13
10個出力で改行したいのですが・・・
C言語・C++・C#
-
14
バッファとは何ですか
C言語・C++・C#
-
15
C言語プログラミングについて(回文、palindrome)
C言語・C++・C#
-
16
符号無し整数xを右にnビット回転
C言語・C++・C#
-
17
2の累乗を計算するプログラムを作ったのですが・・・
C言語・C++・C#
-
18
数字文字の出現回数を表示するプログラム(C言語)
C言語・C++・C#
-
19
str系関数を使わずに二つの文字を結合する方法
C言語・C++・C#
-
20
C言語のプログラムが実行できません。
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
str系関数を使わずに二つの文字...
-
5
文字列ポインタを結合
-
6
int main()の・・・
-
7
sprintfに同じ変数は使えるか
-
8
【C言語】テキストファイル内の...
-
9
下記のプログラムがコンパイラ...
-
10
C言語のfor文です。 繰り返しの...
-
11
C言語 char型からint型?
-
12
干支のプログラム
-
13
テキストデータをそのままバイ...
-
14
C言語のsendとrecv
-
15
間接参照のレベルが異なっています
-
16
javaでunsignedは使えないので...
-
17
配列をnビットシフトする
-
18
4バイトでのサムチェックコー...
-
19
「char* p」と「char *p」は何...
-
20
CStringをwchar_tに変換したい
おすすめ情報
公式facebook
公式twitter