1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 写出一个程序 接受一个由字母 数字和空格组成的字符串 和一个字符 然后输出输入字

写出一个程序 接受一个由字母 数字和空格组成的字符串 和一个字符 然后输出输入字

时间:2019-09-02 06:39:28

相关推荐

写出一个程序 接受一个由字母 数字和空格组成的字符串 和一个字符 然后输出输入字

一、题目

输入描述:

第一行输入一个由字母和数字以及空格组成的字符串,第二行输入一个字符。

输出描述:

输出输入字符串中含有该字符的个数。(不区分大小写字母)

示例1

输入:

ABCabc

A

输出:

2

二、代码

#include <stdio.h>//strlen()函数所在的头文件#include <string.h>#define cmp ('a'-'A')//预处理器定义函数#define Com(x,y) ((x>y?x:y)-(x<y?x:y))int main(void) {char str[1024];char ch;int i;int count = 0;//sizeof()函数,获取str函数所占的字节数fgets(str, sizeof(str), stdin);scanf("%c", &ch);for (i = 0; i < strlen(str); i++) {if ((str[i]-ch) == 0 || Com(str[i], ch) == cmp)count++;}printf("%d", count);return 0;}

scnaf()函数,读取字符串中的一个单词,而不是一整句。scnaf()在遇到空格时就停止读取。

三、fgets()函数解释

fgets()函数,用于读取一串字符,包括换行符’\n’。fgets() 和 gets() 一样,最后的回车都会从缓冲区中取出来。只不过 gets() 是取出来丢掉,而 fgets() 是取出来自己留着。但总之缓冲区中是没有回车了!所以与 gets() 一样,在使用 fgets() 的时候,如果后面要从键盘给字符变量赋值,那么同样不需要清空缓冲区。示例如下:

#include <stdio.h>int main(void) {char str[50];char ch;printf("input a string:\n");fgets(str, sizeof(str), stdin);printf("input a character:\n");scanf("%c", &ch);//无需在printf()函数中加入换行符。//因为在fgets()函数中,已经读取到键盘输入的换行符,并且放入到了str字符串中。//在打印str时,会把其中的换行符也打印出来printf("str=%s", str);//此处,无需额外添加换行符printf("ch=%c\n", ch);return 0;}

写出一个程序 接受一个由字母 数字和空格组成的字符串 和一个字符 然后输出输入字符串中该字符的出现次数。(不区分大小写字母)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。