C/C++学习笔记:字符串

C语言字符串

☆字符串的定义、赋值、输出

由于C语言中没有字符串string类型,所以使用字符数组来存放字符串。

char str1[] = "I am a student."; //可输入也可输出
char *str2 = "I am a student.";  //只能输出
printf("%s\n%s\n",str1,str2);

str1 和 str2 是字符串的名字,后边的[ ]和前边的*是固定的写法。

这里需要留意一个坑,字符数组只有在定义时才能将整个字符串一次性地赋值给它,一旦定义完了,就只能一个字符一个字符地赋值了。请看下面的例子:

char str[7];
str = "abc123";  //错误
//正确
str[0] = 'a'; str[1] = 'b'; str[2] = 'c';
str[3] = '1'; str[4] = '2'; str[5] = '3';
拼接俩字符串

strcat 是 string catenate 的缩写,意思是把两个字符串拼接在一起,语法格式为:

strcat(arrayName1, arrayName2);

arrayName1、arrayName2 为需要拼接的字符串。

复制字符串

strcpy 是 string copy 的缩写,意思是字符串复制,也即将字符串从一个地方复制到另外一个地方,语法格式为:

strcpy(arrayName1, arrayName2);

strcpy() 会把 arrayName2 中的字符串拷贝到 arrayName1 中,字符串结束标志'\0'也一同拷贝。

字符串比较

strcmp 是 string compare 的缩写,意思是字符串比较,语法格式为:

strcmp(arrayName1, arrayName2);

arrayName1 和 arrayName2 是需要比较的两个字符串。

字符本身没有大小之分,strcmp() 以各个字符对应的 ASCII 码值进行比较。strcmp() 从两个字符串的第 0 个字符开始比较,如果它们相等,就继续比较下一个字符,直到遇见不同的字符,或者到字符串的末尾。

返回值:若 arrayName1 和 arrayName2 相同,则返回0;若 arrayName1 大于 arrayName2,则返回大于 0 的值;若 arrayName1 小于 arrayName2,则返回小于0 的值。

C++字符串类

字符串变量
#include <iostream>
#include <string>
using namespace std;
int main ()
{
   string str1 = "Hello "; //字符串类,赋值
   string str2 = "World!!!"; //字符串类
   string str3;
   int len;
 
   // 复制 str1 到 str3,长度可以不同
   str3 = str1;
   cout << "str3 : " << str3 << endl;
 
   // 连接 str1 和 str2
   str3 = str1 + str2;
   cout << "str1 + str2 : " << str3 << endl;
 
   // 连接后,str3 的总长度
   len = str3.size();
   cout << "str3.size() :  " << len << endl;
 
   return 0;
}

输出

str3 : Hello
str1 + str2 : Hello World!!!
str3.size() :  14
字符串数组
getline(cin,str) 可以输入带空格的string
#include<iostream>  
#include<string>  
using namespace std; 

int main()
{
	string str[3];
	cout<<"please input the str"<<endl;
    for(int i=0;i<3;i++){
        getline(cin,str[i]);
        int n=str[i].length();     //  输出字符串长度
        cout<<"str[" << i << "] length:"<<n<<endl;
    }
    return 0;
}

输出结果

please input the str
China is strong!
str[0] length:16
USA is weak!
str[1] length:12
I am Chinese!
str[2] length:12
宏定义字符串
//宏定义一个字符串
include <iostream>
using namespace std;

#define STR "The minimum non-negative integer is "
int main(){
	cout << STR << 0 << endl;
	return 0;
}

输出

The minimum non-negative integer is 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值