从键盘输入一个字符串,显示删除了所有空格和标点符号的字符串

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/CV2017/article/details/81029573
/*任务:用指针操作完成从键盘输入一个字符串,显示删除了所有空格和标点符号的字符串
  设计:
	1.定义并初始化指针
	2.动态分配内存
	3.循环操作
	4.用isalpha函数判断是否是字母
*/
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>	//isalpha()函数的头文件

int main()
{
	char *p = NULL;
	p =(char *)malloc(100*sizeof(char));    //将malloc函数返回的void *指针强制转换为char *指针

	printf("请输入字符串:\n");
	gets(p);    //输入字符串

	printf("\n删除了所有空格和标点符号的字符串\n");
	while (*p)
	{
		if (isalpha(*p))
		{
			printf("%c", *p);
		}
		p++;
	}
	printf("\n");
	
	return 0;
}

结果截图:


知识点:

1. isalpha()函数

    作用:判断是否为字母

    头文件:#include<ctype.h>

    原型:int isalpha(int ch)

    返回值:若为英文字母,返回非0(小写字母为2,大写字母为1)。若不是字母,返回0

2.gets()函数

    原型:gets(数组名)

    作用:把输入的字符串传入给定的数组中

    头文件:#include<stdio.h>

    返回值:正常时返回字符串存放的数组的首地址(指针),错误或遇到EOF时返回NULL

3.while(*p)

    解读:*p内容有值,也就是 while(*p) 等同于 while(*p != '\0'),\0是字符串结束的标志,字符串结束之前都有值

4.printf("%c",*p)

    等同于 putchar(*p),putchar()函数作用是向终端输出一个字符

5.scanf()函数与gets()函数的区别

    在于输入的字符串是否中间有空格,对于gets()函数,只有遇到'\n'时才停止输入,对于scanf()函数,出现'\n'或空格都停止输入

    

展开阅读全文

没有更多推荐了,返回首页