从键盘输入一串字符串,统计字符串中特定字符的个数(特定字符需要从键盘输入),并输出个数。 说明?
(2)字符串存入一个足够大的字符数组中,保证输入的字符个数不要超过最大个数。
(3)在主函数中输入字符串,通过调用统计函数(strStat,要把字符串和特定字符传给函数)返回特定字符的个数,并在主函数中输出。
(4)统计时使用循环控制语句,需要了解字符数组的结束标志是’\0’,作为循环的结束标志。
(5)输出数据的格式如下: The number of * is *!
例如:
Statistics suggest that the population of this country will be double in ten years //输入的字符串
t //输入的特定字符
The number of t is 11 ! //输出的统计结果 展开
思路:从键盘分别输入字符串和要统计的字符,然后对此字符串从头开始逐个与所统计的字符比较。
如相同,则让计数器加1,知道字符串整体比较结束为止,计数器中就是需统计的字符的个数,具体代码设计如下:
函数应用
1、连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn.
例:concat(‘11’,'aa’)='11aa’;
2、求子串。 Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。
例:copy(‘abdag’,2,3)=’bda’
3、删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。
例:s:=’abcde’;delete(s,2,3);结果s:=’ae’
4、插入子串。 过程Insert(s1,s2,I) 把s1插入到s2的第I个位置
例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’
2022-02-08 · 百度认证:云南新华电脑职业培训学校官方账号
思路:从键盘分别输入字符串和要统计的字符,然后对此字符串从头开始逐个与所统计的字符比较。
如相同,则让计数器加1,知道字符串整体比较结束为止,计数器中就是需统计的字符的个数,具体代码设计如下:
函数应用
1、连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn.
例:concat(‘11’,'aa’)='11aa’;
2、求子串。 Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。
例:copy(‘abdag’,2,3)=’bda’
3、删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。
例:s:=’abcde’;delete(s,2,3);结果s:=’ae’
4、插入子串。 过程Insert(s1,s2,I) 把s1插入到s2的第I个位置
例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’
思路:从键盘分别输入字符串和要统计的字符,然后对此字符串从头开始逐个与所统计的字符比较。
如相同,则让计数器加1,知道字符串整体比较结束为止,计数器中就是需统计的字符的个数,具体代码设计如下:
函数应用
1、连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn.
例:concat(‘11’,'aa’)='11aa’;
2、求子串。 Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。
例:copy(‘abdag’,2,3)=’bda’
3、删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。
例:s:=’abcde’;delete(s,2,3);结果s:=’ae’
4、插入子串。 过程Insert(s1,s2,I) 把s1插入到s2的第I个位置
例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’
#include <stdio.h>
#include <stdlib.h>
//统计函数
int strStat (char *str, char ch) {
int n = 0; //统计个数的变量
for (int i = 0; str[i] != '\0'; i++) {
n += (str[i] == ch);
}
return n;
}
//main函数
int main (void) {
char *s, c;
scanf ("%m[^\n] %c", &s, &c);
/* %m[^\n]用来输入字符串s,表示只要不是回车换行符的字符都要读取。(%s不能读取空格)
%c用来输入指定的字符,中间的空格用来匹配stdin中的换行符,以防换行符与%c匹配而被c读走;
格式控制字符串中的m表示根据输入的字符串长度分配足够大小的内存空间,使用完毕后要释放 */
printf ("The number of %c is %d!\n", c, strStat (s, c)); //调用统计函数,返回结果
free (s);
return 0;
}