删除非字母字符

#include <stdio.h>

int main(void)
{
	char line[100];
	int i, j;
	printf("输入一个字符串:");
	fgets(line, sizeof(line), stdin);	// 输入流中一个字符一个字符地填充到数组中

	for(i=0; line[i]!='\0'; i++)	// 遍历数组的每一个字符,line[i]!='\0';表示还没有到达字符串末尾,C中自动定义了数组的最后一个字符是\0
	{
		// 删除不是字母的字符
		while (!( (line[i] >= 'a' && line[i] <= 'z') 
			|| (line[i] >= 'A' && line[i] <= 'Z') 
			|| line[i] == '\0'))
		{
			// 删除当前非字母字符,后面所有字符向前移位
			for(j=i; line[j]!='\0'; j++)
			{
				line[j] = line[j+1];
			}
			line[j] = '\0';		// 保持末尾是\0符号,保持原来字符的样式
		}
	}

	// 输出
	puts(line);

	return 0;
}

 

 运行:

 

posted @ 2018-02-27 17:27  半生戎马,共话桑麻、  阅读(271)  评论(0)    收藏  举报
levels of contents