ショッピングモール  


【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は謹んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板1こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.2918

解答 6-3-1の解釈
投稿者---this(2004/11/08 00:43:56)



{
char str1[128], str2[128];
          ↑この128という数字は、10進に直したときの文字の           範囲
int flg = 0;
int i = 0;

printf( "同じ長さの文字列を2つ入力しなさい\n" );
scanf( "%s", str1 );
scanf( "%s", str2 );

while ( str1[i] != '\0' ) {
           ↑ ここはどのように考えれば?
if ( str1[i] != str2[i] ) {
          ↑str1と2が等しくなければflgがプラスされ、次の条件式で異なると表示される
  flg++; /* 異なる場合チェック */
}
i++;
}

このような解釈でいいのでしょうか?あとwhile ( str1[i] != '\0' )この条件式の意味がちんぷんかんぷんで  != は 等しくない \0 は終了を意味する。str1が終了と等しくない間ループしろ?何のことやらさっぱりで。わかるかた説明お願いします。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:解答 6-3-1の解釈 2919 RAPT 2004/11/08 02:02:13


No.2919

Re:解答 6-3-1の解釈
投稿者---RAPT(2004/11/08 02:02:13)


char str1[128];
は、char型128個分の配列を宣言しています。
文字配列(=char型の配列)は、ナル文字('\0')を終端とします。

str1[i] != '\0'
これは、str1[i]の値がナル文字でない、という式です。

while(str1[i] != '\0')
従って、これは「文字列が終端に達していない間」がループ条件となります。


> \0 は終了を意味する。
正しくない表現です。文字配列の終端記号ではあるが、単純に「終了を意味する」
なんて思い込んでいるとあとで苦労します。

> str1が終了と等しくない間ループしろ?
str1[i]が終端に達しない間、ループしろ、です。
言い換えると、str1が終端に達した時にループが終了します。
とりあえず文字配列(≒文字列)について勉強してください。

str1と書くと、char[]型の配列ですが、str1[i]はchar型の文字です。



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧




掲示板提供:Real Integrity