C 的语法基础(五)
⭐写在前面的话:本系列文章旨在短时间内回顾C/C 语法中的重点与易错点,巩固算法竞赛与写题过程中常用的语法知识,精准地解决学过但有遗忘的情况,为算法刷题打下坚实的基础。
8.1 字符与整数——ASCII码
每个常用字符都对应一个-128 ~ 127的数字,二者之间可以相互转化。
- 常用ASCII值:‘A’- 'Z’是65 ~ 90,‘a’ - 'z’是97 - 122,0 - 9是 48 - 57。
#include <iostream>
using namespace std;
int main()
{
char c = 'a';
cout << (int)c << endl;
int a = 66;
cout << (char)a << endl;
return 0;
}
- 字符可以参与运算,运算时会将其当做整数:
#include <iostream>
using namespace std;
int main()
{
int a = 'B' - 'A';
int b = 'A' * 'B';
char c = 'A' 2;
cout << a << endl;
cout << b << endl;
cout << c << endl;
return 0;
}
练习:输入一行字符,统计出其中数字字符的个数,以及字母字符的个数。
代码语言:javascript复制#include<bits/stdc .h>
using namespace std;
int main()
{
char c;
int nums = 0,chars = 0;
while(cin >> n)
{
if(c >= '0' && c <='9')nums ;
else if( c >= 'A' && c <='Z' || c >= 'a' && c <= 'z')chars ;
}
printf("nums:%d n chars:%d",nums,chars);
return 0;
}
8.2 字符数组
**字符串就是字符数组加上结束符’ ’。**注意 的ASCII码值就是0。
可以使用字符串来初始化字符数组,但此时要注意,每个字符串结尾会暗含一个’ ’字符,因此字符数组的长度至少要比字符串的长度多 1 !
注意:在C 和java中,’ '和“ ”意义不同,一个是针对字符,一个是针对字符串。
代码语言:javascript复制#include <iostream>
using namespace std;
int main()
{
char a1[] = {'C', ' ', ' '}; // 列表初始化,没有空字符,不能称作字符串
char a2[] = {'C', ' ', ' ', '