
CかC++のプログラムで、文字配列をリセットしたいのでそういった関数を探してみました。
ネットで探したのですが、いくつかのサイトでstrsetという関数が紹介されていました。これは、strset(リセットしたい文字列,入れたい文字)という風に使うようです。
それで実際にソースに書いてコンパイルしたのですが、この関数は定義されてないらしく、認識してくれません。
(インクルードファイルは<stdio.h>,<stdlib.h>,<string.h>を使いました)
確かに聞いたことの無い関数だし、何冊かの本を見ましたがどこにもありません。
この関数はなにか特別な条件でないと使えないのでしょうか??
ちなみに、私がやろうとしたことは
char moji[] = "aiueo"と、aiueoが入った文字列mojiの中身を、
strset(moji," ")として空白にしたかったのです。
strsetの他に、文字列の中身を好きな文字で埋められるような関数ってありませんか?ご存知の方、教えて下さい。
No.3
- 回答日時:
補足です。
通常は strcpy ですね。
使い方は、
strcpy( moji, " " );
です。
No.2
- 回答日時:
#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ではないかも?)
訂正だらけで申し訳ありません。
いろいろ考えてくださってありがとうございます。
参考になりました。
そういえばmemsetってありましたね。
C++だけの関数だと勝手に思ってて、Cでも使えるとは知りませんでした。
unix上で動かしてるのでmemsetを使ったらうまくいきました。
No.1
- 回答日時:
char* p = moji;
while (*p) {
*p = ' ';
}
はどうでしょう?
int i;
for (i = 0; i < sizeof(moji); i++) {
moji[i] = ' ';
}
でもいいかも。
あるいは
memset(moji, ' ', sizeof(moji));
とか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CStringをwchar_tに変換したい
-
3桁区切(コンマ)記号をつけ...
-
文字列から空白を取り除きたい...
-
ネットワークにつながっている...
-
間接操作のレベルとは
-
Visual Studio strcpyについて
-
ラベリング処理プログラム
-
日付表示の方法
-
fgetsなどのときのstdinのバッ...
-
ftoa の作り方
-
【C言語】構造体内の領域解放(...
-
strtokについて
-
charからLPTSTRへの変換方法
-
charでの計算?
-
【C言語】テキストファイル内の...
-
c言語配列の結合についてです。...
-
C言語のfor文です。 繰り返しの...
-
atoi( ) の反対をやりたい
-
配列をnビットシフトする
-
プログラミングで以下の実行結...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
fgetsなどのときのstdinのバッ...
-
C言語のfor文です。 繰り返しの...
-
文字列から空白を取り除きたい...
-
テキストデータをそのままバイ...
-
2曲同時再生するにはどうした...
-
配列をnビットシフトする
-
CStringをwchar_tに変換したい
-
c++ 文字列を入力して、一文字...
-
charからLPTSTRへの変換方法
-
atoi( ) の反対をやりたい
-
間接参照のレベルが異なっています
-
charでの計算?
-
c言語プログラミング実行時エラ...
-
double型の値をchar配列に変換...
-
str系関数を使わずに二つの文字...
-
3桁区切(コンマ)記号をつけ...
-
iconv_open失敗
-
間接操作のレベルとは
-
【C言語】構造体内の領域解放(...
-
ftoa の作り方
おすすめ情報