配列pに、配列aの最後の1文字だけを代入したいです。
最終的に「キーボードから文字列の入力を受け取り、末尾のピリオドの有無を判別し、有ればそのままを、無ければピリオドを追加して表示するプログラム」を作成したいと考えています。
その際、文字列aの末尾が代入された文字列pと、ピリオドのみが格納された文字列bを
strcmpを使い文字列同士を比較したいと考えております。
そのため、配列pに配列aの末尾1文字を代入したいと考えています。
C
1#include <stdio.h> 2#include <string.h> 3 4int main(void) 5{ 6 int n; 7 char a[80], p[1]; 8 gets(a); 9 n = strlen(a); 10 p[0] = a[n - 1]; 11 12 printf("%s\n", p); 13 14 return 0; 15}
このようにコードを記入したところ
以下のように、aの末尾1文字と、文字列aが合体されて出力されてしまいました。
入力:iiio → 出力:oiiio 入力:aaiio → 出力:oaaiio
なぜこのようになってしまうかと、末尾1文字だけを代入するにはどうすればいいのかが知りたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/23 13:12