C风格字符串
- C风格字符串并不是一种类型,它指的是一种编程习惯,指C语言中以''结尾的字符串。
- C语言中没有字符串类型,通常用字符串数组来存放一个字符串;可以直接将一个字符串直接量(字面量)直接赋值给数组(可以定义长度也可以不指定),编译器会在字符数组末尾自动的添加''作为串的结束符。
- 用字符串给字符数组赋值时由于要添加结束符'',数组的长度要比字符串的长度大1.
- puts和printf在输出字符串时会逐个扫描字符,直到遇见''才结束。
- C语言中字符串定义方式有两种:char *s或者char s[],都属于C风格字符串,其区别是char *s定义的字符串直接量保存在内存的数据段中且不可更改,字符数组保存在栈内存中。
复制代码
1
2
3
4
5
6
7
8
9//例:以下程序会报错,因为Danny保存在内存数据段中,不可更改。 char *src = "Danny"; const char *addition = "Andy"; strcat(src, addition); //正确形式 char src[20] = "Danny"; const char *addition = "Andy"; strcat(src, addition);
注意:C风格字符串以'’结尾,头文件cstring和string.h中定义的函数strlen、strcat等函数操作的对象是C风格字符串。
C风格字符串和string的相关操作
-
C风格字符串与string字符串直接的转换
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14//C风格字符串转string:直接赋值 char *ch1="123456"; string str=ch1;//直接赋值即可 cout<<str<<endl; char ch[]="ldkk"; string st=ch;//直接赋值 //string转C风格字符串:两种方式c_str() data() string str2="gsghd"; const char *s=str2.c_str();//.c_str()返回字符串常量 printf("%sn",s); const char *cs=str2.data(); printf("%sn",cs);
-
C风格字符以及string字符串输入输出以及遍历方式
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16//c字符数组输入方式: char ch[100]; //scanf("%s",ch);//c字符串输入方式 //printf("%sn",ch); char *ch2; //scanf("%s",ch2);报错,ch2未被初始化指向不明 //ch2=(char *)malloc(sizeof(char)); //scanf("%s",ch2);//已经分配好空间 gets(ch); printf("%sn",ch); //数组遍历:需要获取长度,使用函数strlen int len=strlen(ch); for(int i=0;i<len;i++){ printf("%cn",ch[i]); }
-
C风格字符串与string的循环连拼接方式(包括与数字直接的拼接)
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33//字符串拼接 //c风格字符串拼接strcat char ch[100]=""; for(int i=0;i<10;i++){ strcat(ch,"1"); } printf("%sn",ch); //使用sprintf char s[100]; for(int i=0;i<2;i++){ sprintf(s,"%s%d",ch,0); strcpy(ch,s); } printf("%sn",s); //string拼接 string str1="skkk"; stringstream ss; ss<<str1; for(int i=0;i<5;i++){ ss<<0; } cout<<ss.str()<<endl; //c11 语法 //to_string方法会导致多重定义问题,adding #define __USE_MINGW_ANSI_STDIO 0 to the start //of the code,before any includes, which disables the definition of vsnprintf in //stdio.h. string str2="ksksks"; string res = str2 + to_string(5); cout<<res<<endl; //string 拼接 字符 string str3=str2+'c'; cout<<str3<<endl;
最后
以上就是细腻钢笔最近收集整理的关于C风格字符串与stringC风格字符串C风格字符串和string的相关操作的全部内容,更多相关C风格字符串与stringC风格字符串C风格字符串和string内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复