常用ASCII值:A - Z
是65 ~ 90,a - z
是97 ~ 122,0 - 9
是 48 ~ 57。
字符串输入
① 字符串数组的形式输入、输出。
输入:
char str[100]; //定义一个大小为100的字符串数组
cin.getline(str,110) //(字符数组名,接收长度,结束符)
fgets(str, 110, stdin); //fgets不会删除行末的回车字符
②标准库类型string(可变长的字符序列,比字符数组更加好用)
定义&初始化:
string str; // 默认初始化,s1是一个空字符串
string s2 = s1; // s2是s1的副本,注意s2只是与s1的值相同,并不指向同一段地址
string s3 = "hiya"; // s3是该字符串字面值的副本
string s4(10, 'c'); // s4的内容是 "cccccccccc"
输入:
cin>>str; //遇到空格或者回车停止
getline(cin,str); //读入一整行;
输出string,需要写成:
printf(“%s”, str .c_str());
cout<<str;
字符串中的特殊函数
a.substr(i,len) //i代表字符串数组起始位置,len代表长度
//返回从i开始的,长度是len的一段;
笔记–关于数组或者字符串大小的计算方法
(语法基础课 78题)
str.size()和strlen(str)的区别
第一点:
所用数据类型不同:str.size()用于string类型,而strlen(str)用在char类型的数组上。如下:
string a;
getline(cin,a);
cout<<a.size();
输出a字符串中除空格外所有有效字符的数量,也是字符串长度。如输入“Hello”,输出“5”。输入“gua jia”,输出“6”。如下:
char str0[8]={'a','b','c','d','e','f','i','g'};
char str1[]="abcdefig";
char str2[]="01234/056789" ;
char str3[]="abcse/0fgkij";
printf("strlen(str0)=%d/n",strlen(str0));
printf("strlen(str1)=%d/n",strlen(str1));
printf("strlen(str2)=%d/n",strlen(str2));
printf("strlen(str3)=%d/n",strlen(str3));
第二点:
strlen(str)和str.length()和str.size()都可以求字符串长度,返回字符串中字符的长度,不包括‘/0’。
其中str.length()和str.size()是同义词,返回同样的值。
strlen(str)是用于求字符数组的长度,其参数是char*。
#include <string>
#include <iostream>
using namespace std;
int main()
{
string name="babababa";
cout<< "name.length(): " << name.length()<<endl;
cout<< "name.size(): " << name.size()<<endl;
char mail[100]="haha";
cout<< "strlen(mail): "<< strlen(mail)<<endl;
char *psd;
psd="lalala";
cout<< "strlen(psd): " << strlen(psd)<<endl;
return 0;
}