最新閲覧日:

CかC++のプログラムで、文字配列をリセットしたいのでそういった関数を探してみました。
ネットで探したのですが、いくつかのサイトでstrsetという関数が紹介されていました。これは、strset(リセットしたい文字列,入れたい文字)という風に使うようです。
それで実際にソースに書いてコンパイルしたのですが、この関数は定義されてないらしく、認識してくれません。
(インクルードファイルは<stdio.h>,<stdlib.h>,<string.h>を使いました)
確かに聞いたことの無い関数だし、何冊かの本を見ましたがどこにもありません。
この関数はなにか特別な条件でないと使えないのでしょうか??

ちなみに、私がやろうとしたことは
char moji[] = "aiueo"と、aiueoが入った文字列mojiの中身を、
strset(moji," ")として空白にしたかったのです。

strsetの他に、文字列の中身を好きな文字で埋められるような関数ってありませんか?ご存知の方、教えて下さい。

A 回答 (4件)

strset って DOS/Windows 系でしか使えないです。


あとは、strset(moji, " " → ' '); の間違いとか?
    • good
    • 0
この回答へのお礼

strsetはUNIX上じゃ動かないって事ですか…どうりで動かないはずです。
だからあまり文献に載ってないのでしょうか。
どうもありがとうございました。

お礼日時:2002/01/23 01:09

 補足です。



 通常は strcpy ですね。
 使い方は、

   strcpy( moji, " " );

 です。
    • good
    • 0
この回答へのお礼

ありがとうございました。
strcpyを使うと簡単ですね…
参考になりました。

お礼日時:2002/01/23 01:07

#1の訂正と捕捉です。



最初のやつ
char* p = moji;
while (*p) {
*p = ' ';
p++; /* 追加 */
}

2番目。
mojiを'\0'で締めましょう。
例えば次のように。
int i, size;
size = sizeof(moji);
for (i = 0; i < size; i++) {
moji[i] = ' ';
}
moji[size-1] = '\0';

3番目。
2番目と同様。
memset(moji, ' ', sizeof(moji)-1);
moji[sizeof(moji)-1] = '\0';
(memsetってWindowsではないかも?)
訂正だらけで申し訳ありません。
    • good
    • 0
この回答へのお礼

いろいろ考えてくださってありがとうございます。
参考になりました。
そういえばmemsetってありましたね。
C++だけの関数だと勝手に思ってて、Cでも使えるとは知りませんでした。
unix上で動かしてるのでmemsetを使ったらうまくいきました。

お礼日時:2002/01/23 01:02

char* p = moji;


while (*p) {
*p = ' ';
}
はどうでしょう?
int i;
for (i = 0; i < sizeof(moji); i++) {
moji[i] = ' ';
}
でもいいかも。
あるいは
memset(moji, ' ', sizeof(moji));
とか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ