質問させてもらいます。
よろしくお願いします。
配列においてある文字列中に#が入力された場合、その文字を文字列の終わりを表す \0
に置き換えたいと思っています。
そこでなのですが、
<code>
int i;
if(buf == '#') buf = '\0';
</code>
とすると、プログラム起動中にエラーが起こってしまいます。
c言語に関して無知なため意味不明な質問をしているかもしれませんが、
よろしくお願いします。
配列における文字変換
Re: 配列における文字変換
コード全体を見せてください。
今の状態では、buf[] をどのように定義しているかなどがわかりませんので、
何とも回答できません。
なお、codeタグの使い方が正しくありません。不等号ではなく、[ と ] とで囲んでください。
プレビューしてから投稿しましょう。
今の状態では、buf[] をどのように定義しているかなどがわかりませんので、
何とも回答できません。
なお、codeタグの使い方が正しくありません。不等号ではなく、[ と ] とで囲んでください。
プレビューしてから投稿しましょう。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: 配列における文字変換
申し訳ないです。
次から気をつけます。
といったかんじです。
よろしくお願いします。
次から気をつけます。
#include<stdio.h>
#include<string.h>
#define MAXLEN 78
char buf[MAXLEN+2];
int main(void){
while(1){
int len,i;
fgets(buf, sizeof(buf), stdin);
if (buf[0] == '\n' || buf[0] == '0') break;
if(buf[i] == '#') buf[i] = '\0';
len = strlen(buf);
if(buf[len - 1] == '\n') buf[len - 1] = '\0';
printf("%s\n", buf);
}
return 0;
}
よろしくお願いします。
- bitter_fox
- 記事: 607
- 登録日時: 15年前
- 住所: 大阪府