数字の文字をどのように削除しますか
C言語では、数字を削除するためにループと条件分岐文が使用できます。以下にサンプルプログラムを示します。
#include <stdio.h>
#include <string.h>
void deleteDigits(char* str) {
int len = strlen(str);
int i, j;
for (i = 0, j = 0; i < len; i++) {
if (str[i] < '0' || str[i] > '9') {
str[j++] = str[i];
}
}
str[j] = '\0';
}
int main() {
char str[100];
printf("输入一个字符串:");
fgets(str, sizeof(str), stdin);
// 删除数字字符
deleteDigits(str);
printf("删除数字字符后的字符串:%s\n", str);
return 0;
}
上のサンプルプログラムでは、deleteDigits関数は数字の文字を削除するために利用されます。これは、2つのポインタiとjを使用します。ここでiは現在の文字を指し、jは新しい文字列内の位置を指します。現在の文字が数字の文字でない場合、それは新しい文字列にコピーされ、jは1増加します。最後に、新しい文字列の末尾は終了記号\0に設定されます。
main 関数では、まず fgets 関数で標準入力から文字列を読み込みます。その後、deleteDigits 関数を呼び出して数字文字を削除し、その結果を出力します。
このサンプルプログラムでは文字列の数字のみが削除できます。他のタイプの数字(整数、浮動小数点など)は削除できません。他のタイプの数字を処理する場合は、stdlib.h などの適切な関数ライブラリを使用してください。