初めて投稿させていただきます。
tomo.xxxです。
今回こちらのサイト(http://www.orchid.co.jp/computer/cschoo ... tml#string)を使ってC言語の文字列とポインタを改めて勉強しようと思って作成したのですが、無限ループの中の処理の②の部分
if(*(str + i) == src){
*(str + i) = dst;
}
の *(str + i) = dst というのはdstのアドレスを*(str + i)に入れているのでしょうか?
それともdstの中身 '-' を ' '(空白)に入れているのでしょうか?
質問が良くわからないかもしれませんが、どなたか教えていただけると幸いです。
ちなみにプログラムは空白に'-'を代入するというプログラムです。
出力結果
abc-def-ghi
#include <stdio.h>
int main(void)
{
char result[100]; // 出力結果を入れる配列
char *str, src, dst;
int i = 0;
src = ' ';
dst = '-';
str = "abc def ghi";
while(1){
// 文字列の終端にきたらループを抜ける・・・①
if(*(str + i) == '\0'){
break;
}
// 文字がsrcだったらdstに上書きする・・・②
if(*(str + i) == src){
*(str + i) = dst;
}
// 結果を保存する・・・③
result[i] = *(str + i);
i++;
}
// 結果を出力する
puts(result);
return 0;
}