C言語を再勉強して3か月くらい経ちましたが、また壁にぶつかってしまいました。
自作コードのどこが間違っているのか何が足りないのか考えても分からなくなってしまったので、投稿させていただきました。
前提・実現したいこと
- 入力した文字数をカウントして表示
- 自動的にリセットする。
理想完成図
文字列を入力してください。 : A224856 文字列"A224856"の長さは7です。 入力された文字列をリセットします。 文字列""の長さは0です。
自作コードのコンパイル結果
文字列を入力してください。 : A224856 文字列""の長さは7です。 入力された文字列をリセットします。 文字列""の長さは0です。
自作コード
C
1#include <stdio.h> 2 3int str_length(char s[]) 4{ 5 6 int len = 0; 7 while (s[len]) 8 9 len++; 10 11 return len; 12 13} 14 15int main(void) 16{ 17 char moji[128]; 18 19 printf("文字列を入力してください。 : "); 20 scanf("%s", moji); 21 printf("文字列\"%s\"の長さは%dです。\n", moji, str_length(moji)); 22 23 printf("\n"); 24 25 str_length(moji); 26 s[0] = '\0'; 27 28 printf("入力された文字列をリセットします。\n"); 29 printf("文字列\"%s\"の長さは%dです。\n", moji, str_length(moji)); 30 31 return 0; 32}
試したこと
s[0] = '\0';をいろんなとこに移動したり、新しいコードを作っても必ずどこかが変な数値が表示される。
問題はなにでしょうか。
そしてそれがどうなればいいんでしょう
提示しているコードが実行結果(「自作コードのコンパイル結果」)と合っていないのではないでしょうか。提示のコードはコンパイルエラーで実行できません。
> s[0] = '\0';をいろんなとこに移動したり、
やみくもにコードをいじくりまわしても、当然、要望通りの結果にはなりません。
> 自作コードのどこが間違っているのか何が足りないのか考えても分からなくなってしまったので、
全てひっくるめて、何がなんだか分からなくなってしまったのでしょうか。落ち着きましょう。
> 文字列を入力してください。 : A224856
> 文字列""の長さは7です。
ここまでの結果で、少なくとも"A224856"の文字列は取得できているはずです。コンパイルエラーのない、現時点のコードを提示しましょう。
回答1件
あなたの回答
tips
プレビュー