欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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);
}

运行结果:
C语言 将字符串中数字字符全部删除

注:
中间不能添加空格字符,否则空格后的字符无法显示。

相关标签: C