-
文字列を一文字ずつ調べながら、母音を削除する方法:
#include <stdio.h> #include <string.h> int isVowel(char c) { c = tolower(c); // 大文字と小文字を区別しないようにするために小文字に変換する return (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u'); } void removeVowels(char *str) { int len = strlen(str); int i, j; for (i = 0, j = 0; i < len; i++) { if (!isVowel(str[i])) { str[j] = str[i]; j++; } } str[j] = '\0'; // 新しい終端文字を追加する } int main() { char str[1000]; printf("文字列を入力してください: "); fgets(str, sizeof(str), stdin); removeVowels(str); printf("母音を削除した文字列: %s\n", str); return 0; }
この方法では、文字列を一文字ずつ調べながら、母音であるかどうかを判定し、母音でない文字だけを残すようにします。
-
正規表現を使用して母音を削除する方法:
#include <stdio.h> #include <string.h> #include <regex.h> void removeVowels(char *str) { regex_t regex; regcomp(®ex, "[aeiouAEIOU]", REG_EXTENDED); regfree(®ex); } int main() { char str[1000]; printf("文字列を入力してください: "); fgets(str, sizeof(str), stdin); removeVowels(str); printf("母音を削除した文字列: %s\n", str); return 0; }
この方法では、正規表現を使用して文字列中の母音を検索し、削除します。正規表現パターン
[aeiouAEIOU]
は、小文字と大文字の母音を含む文字をマッチさせます。
これらの方法を使用することで、C言語で文字列から母音を削除することができます。