C语言 将字符串中数字字符全部删除
程序员文章站
2022-05-29 16:04:57
...
不改变原有数组删除数字字符:
#include <stdio.h>
#define LENGTH 128
void del_digit(const char str[]) {
int i = 0;
while (str[i]) {
if (str[i] < '0' || str[i] > '9') {
putchar(str[i++]);
}else {
i++;
}
}
}
int main()
{
char str[LENGTH];
puts("请输入字符串:");
scanf("%s", str);
puts("删除数字字符得到:");
del_digit(str);
return 0;
}
不使用指针删除数字字符(改变原有数组)
#include <stdio.h>
#define LENGTH 128
void del_digit(char[], char[]);
void exchange_of_array(char[], char[]);
void put_string(const char[]);
void del_digit(char str1[], char str2[]) {
int i = 0;
int j = 0;
while (str1[i]) {
if (str1[i] < '0' || str1[i] > '9') {
str2[j] = str1[i];
j++;
i++;
} else {
i++;
}
}
exchange_of_array(str1, str2);
}
void exchange_of_array(char str1[], char str2[]) {
int i = 0;
int j = 0;
while (str1[j]) {
str1[j] = '\0';
j++;
}
while (str2[i]) {
str1[i] = str2[i];
i++;
}
put_string(str1);
}
void put_string(const char str1[]) {
int i = 0;
while (str1[i]) {
putchar(str1[i++]);
}
}
int main(){
char str1[LENGTH];
char str2[LENGTH] = "";
puts("请输入字符串:");
scanf("%s", str1);
puts("删除数字字符得到:");
del_digit(str1, str2);
return 0;
}
使用指针删除数字字符(改变原有数组)
#include <stdio.h>
#define LENGTH 128
void del_digit(char str[]){
int i;
int j;
for (i = 0; *(str + i); i++){
if ((*(str + i) >= '0')&&(*(str + i) <= '9')){
for(j = i; *(str + j); j++){
*(str + j) = *(str + j + 1);
}
i--;
}
}
printf("删除数字字符得到:%s\n", str);
}
int main()
{
char str[LENGTH];
puts("请输入字符串:");
scanf("%s", str);
del_digit(str);
}
运行结果:
注:
中间不能添加空格字符,否则空格后的字符无法显示。
上一篇: abc串(字符串水题)
下一篇: 泰岳区块链-Dapp后台的开发记录(一)