//字符串输入规则(注意字符串所占的空间结构)
*注意数组越界 为\0留出空间
scanf 遇到空格 自动停止 最后自动加/0 例:输入Fox River 输出 Fox scanf("%s",line)*没有&符号(&符号是取地址)
易发生数组越界
cin.getline(char 数组名,int size)/cin.getline(数组名,sizeof(数组名)) size是数组大小(可输入空格)
*类型可省
gets(char buf[])//无论输入的字符串多长 都会进入buf 若超长发生数组越界
*可直接用数组名代替
//字符串数组、指针字符串数组
#include <iostream>
using namespace std;
int main()
{
char str[]={'C','h','i','n','a'};
for(int i=0;i<5;i++)
cout << str[i];
char str1[]={"China"};
for(int i=0;i<5;i++)
cout << str1[i];
char *str2[]={"China","Japan"};
for(int i=0;i<10;i++)
cout << str2[i] <<endl;
return 0;
}
//头文件: #include <cstring>
例:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char title[]="Prison Break";
char hero[100]="Michael Scofield";
char prisonName[100];
char response[100];
cout<<"What's the name of the prison in "<<title<<endl;
cin>>prisonName;
if(strcmp(prisonName,"Fox-River")==0) //strcmp 比较字符串
cout<<"Yeah! Do you love "<<hero<<endl;
else {
strcpy(response,"It seems you haven't watched it!\n");//strcpy 拷贝
cout<<response;
}
title[0]='t';
title[3]='\0';
cout<<title;
}
//字符串库函数
#include <cstring>
字符串的拷贝:strcpy(char [] dest,char [] src);//拷贝src到dest
字符串比较大小:int strcmp(char [] s1,char [] s2);
求字符串长度:int strlen (char[] s);
字符串拼接:strcat(char [] s1,char [] s2);//s2拼接到s1
字符串转换成大写:strupr(char []);
字符串转换成小写:strlwr(char []);
例:
#include <iostream>
#include <cstring>
using namespace std;
void PrintSmall(char s1[],char s2[])//输出字典序小的字符串
{
if(strcmp(s1,s2)<=0) cout<<s1;
else cout<<s2;
}
int main()
{
char s1[30]; char s2[40]; char s3[100];
strcpy(s1,"Hello");
strcpy(s2,s1);
cout<<"1)"<<s2<<endl;
strcat(s1,",world!");
cout<<"2)"<< s1<<endl;
cout<<"3)";PrintSmall("abc",s2);cout<<endl;
cout<<"4)";PrintSmall("abc","aaa");cout<<endl;
int n=strlen(s2);
cout<<"5)"<<n<<","<<strlen("abc"`在这里插入代码片`)<<endl;
strupr(s1);
cout<<"6)"<<s1<<endl;
strcpy(s1,s2);//strcpy会将原数组中的字符串清空后,再拷贝进去
cout<<s1;
}
输出:
1)Hello
2)Hello,world!
3)Hello
4)aaa
5)5,3
6)HELLO,WORLD!
Hello
C++ cstring函数库使用说明
最新推荐文章于 2024-04-08 09:50:36 发布