プロが教える店舗&オフィスのセキュリティ対策術

C言語の質問です、プログラミング初心者です

このような文字列があった場合
"abcdef☆ghijklmnopqrstu_vwxyz"

☆と_を指定して☆から_の間の文字を削除するにはどうしたらいいですか?

実行結果がこのようになるようにしたいです
"abcdefvwxyz"

数字で指定するのではなく文字で指定したいです。
よろしくお願いします

A 回答 (4件)

プログラムの練習のつもりで作ってみました。


#include <stdio.h>
int main(){
char *p;
p=(char *)"abcdef☆ghijklmnopqrstu_vwxyz";
while (*p != NULL) {
if (*p == *"☆") {
if (*++p == *("☆"+1)) {
while (*p != '_') {
if (*p == NULL)return 0;
p++;
}
p++;
}
else {
printf("%c", *(p-1));
}
}
printf("%c", *p++);
}
printf_s("\nEnterキーを押してください"); (void)getchar();
return 0;
}

"abc…"をファイルから読み取る場合は注意が必要です。全角文字は何種類かの記述法があるので,このプログラムでうまくいかない場合もあります。ファイルの保存時エンコードをANSIにしてあるとうまくいきます。
    • good
    • 0

>数字で指定するのではなく文字で指定したいです。



while 文字がある間 {
 if(☆から_の間の文字) 何もしない
 else 文字を出力
}

でいいんじゃない?
    • good
    • 0

漢字の文字コードはなんでしょうか。

    • good
    • 0

1. 正規表現での置換ができるライブラリを探してそれでなんとかする.


2. ☆と_の位置をがんばって (strstr かなんかで) 調べて memmove なり strcpy (strncpy) なりで動かす.
    • good
    • 0

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