こんにちは。
閲覧していただきありがとうございます。
長文になりますが勉強がわからず困っているので、ご助力いただけると助かります。
C言語についてです。
文字列の中に、特定の文字が出てきたときにだけ改行して表示するプログラムを作りたくて、以下のようにしてみました。(文字はアルファベット小文字のみです)
#include<stdio.h>
#include<string.h>
int main(){
char str[200];
int i;
int k;
puts("文字列を入力");
gets(str);
k = strlen(str);
for(i=0;i<k;i++){
if(strcmp(str[i],"n")==0)
printf("\n");
printf("%c",str[i]);
}
return 0;
}
このプログラムにより期待する結果は、例えば入力した文字列が「abcdne abcn d」だとすれば、nが来たときに改行が実行されて
abcd
ne abc
n d
と表示されるようにしたいのですが、strcmpにintは渡せないとか、ポインタを使ってみても、実力不足ゆえに、「移植性のないポインタ変換」とかのエラーしか出ません。
どのようにすれば、この結果を得ることができるのでしょうか?
ぜひご教授ください。よろしくお願いします。
No.1
- 回答日時:
大昔C言語で鳴らした者です(--;)
if(strcmp(str[i],"n")==0)
ってところがダメだと思います。strcmpの引数はchar*でないといけないのに、str[i]を渡しているところがダメかと。
治すなら
if (strncmp (&str[i], "n", strlen("n"))==0)
とするといいんじゃないですかね。ちょっと汚いコードですが、動いたらきれいにしていけばいいと思います。
解答ありがとうございます。
さっそくやってみたところ、strcmpの引数は二つまでなので、実行はできませんでしたが、
これを元に少し変えてみたところ動くようになりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- Java Javaの問題なのですが、「3文字以上の英数字文字列を入力し、文字列の中に文字(9)が出てくるまでの 1 2023/06/06 18:55
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CStringのFindで文字列検索を行...
-
sscanfとscanfの違いがよくわか...
-
C言語でパスワード作成ツール
-
charと%c , %s の関係について
-
エディットボックスに入力され...
-
C言語で16進数文字列から16進数...
-
fgetsで拾われる改行文字を削除...
-
教えていただけませんか?C言語...
-
C言語でプログラミング。(文...
-
str[j++]の意味
-
スペースで区切って数字を入力
-
fgets関数を使用したときの文字...
-
C言語のステップ数をカウントす...
-
strstrを利用しない文字列検索...
-
getchar分を用いて入力された文...
-
CStringについて
-
【続】コマンドライン引数を使...
-
反転した数値を表示させるやり方
-
if文の判定条件('||'と'&&'の使...
-
Cで「大文字、小文字の判定」は...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CStringのFindで文字列検索を行...
-
sscanfとscanfの違いがよくわか...
-
fgets関数を使用したときの文字...
-
反転した数値を表示させるやり方
-
Cで「大文字、小文字の判定」は...
-
charと%c , %s の関係について
-
C言語のステップ数をカウントす...
-
strstrを利用しない文字列検索...
-
C言語 空白の行(改行のみ)が...
-
fgetsで拾われる改行文字を削除...
-
文字列中に含まれる文字の個数...
-
C言語で16進数文字列から16進数...
-
itoaわかりません
-
文の意味
-
C言語 strlen 再入力を促す
-
fgetsでバッファ残留文字列を無...
-
全角文字のチェック
-
C++
-
ブランクのチェック
-
C言語、単語ごとに改行したい
おすすめ情報