今日简单介绍有关于字符的知识,因为字符是在字符串以及字符数组中最基础的,以后指针也很大量的用到字符的知识。
更重要的是今日小编犯了一个错误,是个很小的错误,为了找出这个错误花费了小编一天的时间,这里也是告诫大家尽量要处理好细节方面的问题,无论你是工作者还是学生,细节导致的错误最为致命,因为你很难找到它。
分
字符简介:
字符在C语言中是最基本的元素,C语言字符集由字母、数字、空白、标点和特殊字符组成(在字符串常量和注释中还可以使用汉字等其他图形符号)。
C语言基本字符也包括以下几种:
这里还要提到的是标识符:
百度定义:标识符是用来表示程序、常量、变量、过程、函数、文件和类型等名称的符号。标识符必须以字母开头,后面可以是字母和数字的任意组合。标识符含有字母和数字的个数称为标识符的长度,它的长度在具体的实现系统中一般都有限制,标准Pascal将标识符的有限长度限定在8个字符以内。
标识符可分为二类:
我们在使用标识符还得注意更多的地方,比如:
C语言简单的字符介绍就到这里啦。
下面是小编今天犯错的一题:
字符统计
题目描述:对于给定的一个字符串,统计其中数字字符出现的次数。
输入
输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。
输出
对于每个测试实例,输出该串中数值的个数,每个输出占一行。
样例输入:
2
asdfasdf123123asdfasdf
asdf111111111asdfasdfasdf
样例输出:
6
9
以下为小编错误源代码的一部分:
for(n=1;n<=i;n++){
puts(a);
b=strlen(a);
for (k = 0; k < b; k++) {
if (a[k]>=48&&a[k]<=57) {
很多时候大家很可能一眼看上去没什么问题,当然大佬除外,这里的a其实是个数组,在for循环时应该是要输入字符串给数组a的,但是小编把gets写成puts了啊,还以为是IDE出问题了
。为此小编弄了一天,很不划算啊,希望大家要以小编为戒,在写代码时一定要注意。
以下为修改后的正确源代码:
#include<stdio.h>
#include<string.h>
#define m 300
int main() {
int i, k, sum, b;
char a[m];
scanf("%d", &i);
while (i--) {
sum = 0;
scanf("%s", a);
b = strlen(a);
for (k = 0; k < b; k++) {
if (a[k] >= 48 && a[k] <= 57)
sum = sum + 1;
}
printf("%d\n", sum);
}
return 0;
}
运行结果:
小编说明:解题的代码不只一种,欢迎大家投稿优质代码与大家共享,可以投稿到公众号后台或者到学习圈子哦。