(第16列)C语言:计算输入的一行字符串中有多少个单词。顺便补充“gets函数”的用法。

导读:本篇文章讲解 (第16列)C语言:计算输入的一行字符串中有多少个单词。顺便补充“gets函数”的用法。,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目录

gets函数: 

描述

声明

参数

注意

代码示例

C语言典列:

题目

分析

        第一步:声明及初始化

        第二步:输入

        第三步:计数

        第四步:输出

完整代码

运行结果


gets函数: 

描述

        gets()函数用来从标准输入设备(键盘)读取字符串直到回车结果,但回车不属于这个字符串,系统自动用’\0’代替最后的换行符

声明

       char *gets(char *str)

参数

  • str — 这是指向一个字符数组的指针,该数组存储了 C 字符串。

注意

        1、本函数可以无限读取,不会判断上限,所以程序员应该确保str的空间足够大,以便在执行读操作时不发生溢出。如果溢出,多出来的字符将被写入到缓冲区后面的内存位置,这将破坏一个或多个不相关变量的值。这个事实导致gets函数只适用于玩具程序。
        2、使用 gets() 时,系统会将最后“敲”的换行符从缓冲区中取出来,然后丢弃,所以缓冲区中不会遗留换行符。这就意味着,如果前面使用过 gets(),而后面又要从键盘给字符变量赋值的话就不需要吸收回车清空缓冲区了,因为缓冲区的回车已经被 gets() 取出来扔掉了。

代码示例

#include <stdio.h>

int main()
{
   char str[50];

   printf("请输入一个字符串:");
   gets(str);   //使用gets函数进行输入

   printf("您输入的字符串是:%s", str);

   return(0);
}

C语言典列:

题目

        输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。

分析

        第一步:声明及初始化


	int i=1,word=0,num=0;    //word用来计算单词数,num计算字母数

	char letter[80];    //数组用来存放字符串
	

        第二步:输入


	printf("请输入:");

	gets(letter);//gets函数是在头文件stdio.h中,可以直接使用
	

        第三步:计数


	for(i=0;letter[i]!='\0';i++)
	{
        //一般一句话单词之间是空格隔开,一个空格结束单词数加一
		if(letter[i]==' ')
		{
			word++;
		}
        //不是空格,就计算字母的个数
		else 
		{
			num++; 
		}

	}

        第四步:输出

//由于字符串的最后一个字符我们会直接换行,而不是输入空格,所以输出的时候单词数加一
printf("单词数为:%d",word+1);

printf("字母总数:%d",num);

完整代码

#include<stdio.h>

int main()
{
	int i=1,word=0,num=0;
	char letter[80];

	printf("请输入:");
	gets(letter);

	for(i=0;letter[i]!='\0';i++)
	{
		if(letter[i]==' ')
		{
			word++;
		}
		else 
		{
			num++; 
		}
	}
	
	printf("单词数为:%d\n",word+1);
	printf("字母总数:%d\n",num);

	return 0;
}

运行结果

(第16列)C语言:计算输入的一行字符串中有多少个单词。顺便补充“gets函数”的用法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/119734.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!