
ユーザ関数は語句を入力、長さを調べる、反転の三つを使用。
実行しても何も起こらないのですがどこを直せばよいでしょうか?
#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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。
C言語・C++・C#
-
C言語について。
C言語・C++・C#
-
C言語です このプログラムに自分で定義した関数を入れたいです! アドバイスください!
C言語・C++・C#
-
-
4
S-JIS → JIS コード変換するには
C言語・C++・C#
-
5
C言語について。
C言語・C++・C#
-
6
c言語 プログラムのエラー
C言語・C++・C#
-
7
プログラミング c言語
C言語・C++・C#
-
8
c言語 配列とポインタについて
C言語・C++・C#
-
9
win10で、正確な待ち時間の作り方
C言語・C++・C#
-
10
ファイルがあるのにエクスプローラでは存在しない
C言語・C++・C#
-
11
C言語 コマンドプロンプトについて。
C言語・C++・C#
-
12
C言語初心者です、、、お助けください
C言語・C++・C#
-
13
c言語の問題の説明、各所ごとに
C言語・C++・C#
-
14
C#の基本文法が詳しく書かれている教科書的な本ありますか
C言語・C++・C#
-
15
c言語 コマンドライン引数
C言語・C++・C#
-
16
C言語階乗の総和を求める
C言語・C++・C#
-
17
visual studio 2019において、宣言していない変数があるのにエラーなくビルド出来ました
C言語・C++・C#
-
18
C言語について。
C言語・C++・C#
-
19
C++のcase文の書き方
C言語・C++・C#
-
20
良いプログラムの条件
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
charからLPTSTRへの変換方法
-
配列をnビットシフトする
-
CStringをwchar_tに変換したい
-
ファイル名である文字列からbas...
-
単語を読み取る(c言語)
-
C言語のfor文です。 繰り返しの...
-
C言語 ミリ秒を日付に変換には
-
C言語の入力した文字を反転させ...
-
'const char *' 型は 'char *' ...
-
テキストデータをそのままバイ...
-
Winsockでの送受信についての質問
-
fgetsなどのときのstdinのバッ...
-
型変換
-
C言語、リダイレクト
-
エンディアン:2バイトのデー...
-
下記のプログラムがコンパイラ...
-
str系関数を使わずに二つの文字...
-
sizeof(char *)
-
atoi( ) の反対をやりたい
-
c言語プログラミング実行時エラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
charからLPTSTRへの変換方法
-
c言語の問題の説明、各所ごとに
-
fgetsなどのときのstdinのバッ...
-
charでの計算?
-
配列をnビットシフトする
-
C言語の入力した文字を反転させ...
-
'const char *' 型は 'char *' ...
-
CStringをwchar_tに変換したい
-
テキストデータをそのままバイ...
-
c++ 文字列を入力して、一文字...
-
C言語です
-
int main()の・・・
-
C言語のfor文です。 繰り返しの...
-
switch文で文字を比較すること...
-
半角カナ→16進
-
構造体の各メンバにfor文からア...
-
絶対パスからのファイル名の切...
-
文字列から空白を取り除きたい...
-
TCHAR文字列?の特定部分の数字...
-
【C言語】テキストファイル内の...
おすすめ情報