我是靠谱客的博主 细腻钢笔,最近开发中收集的这篇文章主要介绍C风格字符串与stringC风格字符串C风格字符串和string的相关操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

C风格字符串

  1. C风格字符串并不是一种类型,它指的是一种编程习惯,指C语言中以''结尾的字符串
  2. C语言中没有字符串类型,通常用字符串数组来存放一个字符串;可以直接将一个字符串直接量(字面量)直接赋值给数组(可以定义长度也可以不指定),编译器会在字符数组末尾自动的添加''作为串的结束符。
  3. 用字符串给字符数组赋值时由于要添加结束符'',数组的长度要比字符串的长度大1.
  4. puts和printf在输出字符串时会逐个扫描字符,直到遇见''才结束。
  5. C语言中字符串定义方式有两种:char *s或者char s[],都属于C风格字符串,其区别是char *s定义的字符串直接量保存在内存的数据段中且不可更改,字符数组保存在栈内存中。

//例:以下程序会报错,因为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字符串直接的转换


//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字符串输入输出以及遍历方式


//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的循环连拼接方式(包括与数字直接的拼接)

//字符串拼接
//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的相关操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部