ユーザ関数は語句を入力、長さを調べる、反転の三つを使用。
実行しても何も起こらないのですがどこを直せばよいでしょうか?
#include <stdio.h>
#define N 100
void input_phrase(char *p)
{
printf("99文字以内で入力");
scanf("%s", p);
}
int len(char *p)
{
int n = 0;
while(*p !='\n')
{
p++;
n++;
}
return n;
}
void inverce(char *p_in, char *p_out)
{
int i, t;
t = len(p_in);
p_out += t - 1;
for (i = 1; i <= t; i++)
{
*p_out = *p_in;
p_in++;
p_out--;
}
}
int main(void)
{
char *p_in, *p_out;
char s1[N];
char s2[N];
void input_phrase(char s1);
int n = 0, len(char *p);
p_in = s1;
p_out = s2;
inverce(p_in, p_out);
printf("%s", s2);
return 0;
}
No.1ベストアンサー
- 回答日時:
実行しても何も起こらない原因は、p_in, p_outが初期化されていないためです。
また、s1, s2もscanfではなくgetsを使用する必要があります。次のように修正してみてください。#include <stdio.h>
#define N 100
void input_phrase(char *p)
{
printf("99文字以内で入力");
gets(p);
}
int len(char *p)
{
int n = 0;
while(*p !='\n')
{
p++;
n++;
}
return n;
}
void inverce(char *p_in, char *p_out)
{
int i, t;
t = len(p_in);
p_out += t - 1;
for (i = 1; i <= t; i++)
{
*p_out = *p_in;
p_in++;
p_out--;
}
}
int main(void)
{
char s1[N];
char s2[N];
input_phrase(s1);
int n = len(s1);
inverce(s1, s2);
printf("%s", s2);
return 0;
}
No.3
- 回答日時:
input_phrase が
void input_phrase(char *p)
と
void input_phrase(char s1);
のように矛盾する形で宣言されているので, 処理系によってはエラーを吐くかもしれない.
ちなみに現在「gets」なる関数は (C の規格には) 存在しないよ>#1. 昔はあったんだけど「安全に扱うことが不可能」という理由で規格から削除された.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
C言語の入力した文字を反転させるプログラミングの仕方が分かりません。
Ruby
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CStringをwchar_tに変換したい
-
atoi( ) の反対をやりたい
-
OpenCVで32bit ヘッダ無しRaw画...
-
間接操作のレベルとは
-
charでの計算?
-
文字列から空白を取り除きたい...
-
C言語のfor文です。 繰り返しの...
-
sprintfに同じ変数は使えるか
-
「char* p」と「char *p」は何...
-
決まった文字列幅でのスクロール
-
文字列
-
VC++でコンパイルエラーが出ま...
-
型変換
-
const char** p;のとき、free(p...
-
C言語プログラミングについて(...
-
YUV⇔RGB変換がうまくいきません。
-
ソースコードエラー
-
enumの記述について。
-
C言語のビットフィールドについて
-
charからLPTSTRへの変換方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CStringをwchar_tに変換したい
-
fgetsなどのときのstdinのバッ...
-
charからLPTSTRへの変換方法
-
C言語のfor文です。 繰り返しの...
-
文字列から空白を取り除きたい...
-
配列をnビットシフトする
-
間接操作のレベルとは
-
charでの計算?
-
テキストデータをそのままバイ...
-
型変換
-
'const char *' 型は 'char *' ...
-
double型の値をchar配列に変換...
-
間接参照のレベルが異なっています
-
干支のプログラム
-
atoi( ) の反対をやりたい
-
C言語です
-
絶対パスからのファイル名の切...
-
ネットワークにつながっている...
-
【C言語】文字型と整数型の違い
-
Win32APIでのエディットボック...
おすすめ情報