基础备忘:字符数组、字符串和字符串处理基本函数

1)字符串是一种特殊的字符数组。

char b[]={"hello"};
char b[]="hello";
//两种都是合法的。
2)使用字符串形式可以简化赋初值,同时在进行输入输出的时候可以不需要使用循环语句来完成。

char array[]="welcome";
cout<<arrry<<endl;//可直接打印出整个字符串
3)字符串的长度是其中字符的数目再加1,因为其包含了结束符\0,而字符数组的长度就是其中字符的数目。blog: sizeof与strlen

char a[]="welcome";
char b[]={'w','e','l','c','o','m','e'};
int la,lb;
la=sizeof(a)/sizeof(char);//长度为8
lb=sizeof(b)/sizeof(char);//长度为7
4)函数strlen(),gets(),puts()。

     strlen()函数的功能是计算字符串的实际长度(不包含字符串的结束标志\0)。当用户用cin输入的字符串中含有空格时,strlen()计算不了空格后的字符数,cin默认以空格作为字符结束的标志。而这在实际应用中是不合理的。

char str[100];
int len;
cin>>str;
len=strlen(str);
//如果输入是Hello World。那么len的结果是5,而不是11。

使用gets()函数能输入带空格的字符串,而且能被编译器完整接收,并准确计算长度。而cin只有空格前的串能被接收。因些当字符串本身包含空格时,建议使用gets()输入,puts()输出。不使用cin()和cout()。
#include<iostream>
using namespace std;
int main(){
char str1[100],str2[100];
int len;
cout<<“输入字符串(gets方式):”;
gets(str2);
cout<<“字符串为:”<<endl;
puts(str2);
len=strlen(str2);
cout<<"字符串长度为:"<<len<<endl;
cout<<endl;

cout<<"输入字符串(cin方式):"<<endl;
cin>>str1;

cout<<“字符串为:”<<str1<<endl;

len=strlen(str1);

cout<<"字符串长度为:"<<len<<endl;
system("pause");
return 0;
}

/*
gets方式:
Hello world

Hello world
11

cin方式:

Hello world

Hello
5

*/

对于二维字符串数组,则

    char name[5][20];
    cout<<"请输入5个名字:"<<endl;
    for(int i=0;i<5;i++)
    gets(name[i]);

5)字符串处理函数

strcmp(字符串数组名1,字符串数组名2)

功能:按照ASCII码值的顺序比较两个数组中的字符串,并由函数返回值返回比较结果。

取值:

字符串1=字符串2,返回0;

字符串1>字符串2,返回值大于0;

字符串1<字符串2,返回值小于0.


strcpy(字符串数组名1,字符串数组名2)

功能:把字符串2复制到字符串1.

字符串是一个字符数组,因此就有数组的局限性,不能用一个字符串给另外的一字符串赋值。如以下语句是错误的:

char name[20];
name = "Jason";
而可以用以下方法:

方法1:
       char name[20];
       strcpy(name,"jason");
方法2:char a[]="welcome";
方法3:char b[]={'w','e','l','c','o','m','e'};

strcat(字符串数组名1,字符串数组名2)

功能:c++的字符串是一种特殊的字符数组,不能通过“+”来实现两个字符串的连接。

           strcat的功能就是把字符串2中的字符串连接到字符串1后面,并删去字符串1中的"\0"。

返回值:

           字符串1的首地址。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值