前提・実現したいこと
文字列に様々な絵文字(⚡、☔などの)が含まれている場合、その絵文字を削除したいです。
該当のソースコード
文字を削除する関数は以下のサイトを引用しましたが、文字列内に絵文字が含まれている条件をどのように判定したら良いか教えてください。
(ちなみに文字コードはutf-8で全角文字を2バイトとなります。)
http://f4.aaacafe.ne.jp/~pointc/log217.html
以下は途中まで作ったコードになります
/* mojiの文字列内にdelという文字が含まれている場合に削除する */ char *deleteMoji(char *moji, const char *del) { char *p1 = moji; char *p2; int len = strlen(del); char strConcat[100] = ""; while((p2 = strstr(p1,del)) != NULL) { strncat(strConcat,p1,p2 - p1); p1 = p2 + len; } strcpy(moji, strcat(strConcat,p1)); return moji; } int main(void){ char moji[100] = "abc⚓123☔あいう☀"; int i; for(i=0; i<strlen(moji); i++){ if((moji[i]+moji[i+1])が絵文字の場合){ char del[3]; // 絵文字は全角文字のため2バイト分のcharを結合する? sprintf(del, "%c%c", moji[i], moji[i+1]); deleteMoji(moji, del); } } // mojiはabc123あいうとなるようにしたい }
以上、よろしくお願いいたします。