IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C/C++的字符串 -> 正文阅读

[C++知识库]C/C++的字符串

C定义字符串

char数组字符串的最后一个字符都是'\0',以表示字符串的结束。实际大小要+1,因为系统自动补'\0'。可以用作结束的标志:while(s[i]!='\0') 或者 while(*p)
sizeof(s):计算的是数组的总大小
strlen(s) : 仅字符串长度,不包括’\0’

char数组:

char类型数组,可以不指定大小 char s[]="xxx";
访问:s[i]
大小:sizeof(s)/strlen(s)

char a[5] = "abcd";   //腾出一个
char s[]= "abcd";      //不能做指针,两种相同
//下标访问
int i = 0;
while (s[i] != '\0') 
    cout << s[i++];  //

const char指针:

const char* s="xxx";,常量字符串,不可更改s的值!
访问:p[i] / *(p++)
大小:sizeof(p) / strlen(p)

const char* p = "abcd"; //常量字符串(不可修改),可以用指针表示 *p访问
//指针访问
while (*p)
    cout << *(p++);   

长度:

char s[5]="abc"
cout << sizeof(s) << endl; 
cout << strlen(s) << endl;

结果分别为 5 ,3

char s[]="abc"
cout << sizeof(s) << endl; 
cout << strlen(s) << endl;

结果分别为 4,3


C的输入输出

字符串可以直接用其数组名(指针)输入输出。
注:scanf输入Space/Enter/Tab(空格回车tab键)即停止输入。

char s[10];
scanf("%s",s);
printf("%s",s);
//终止判断
while(scanf("%d",&n)!=EOF)

new/malloc动态分配

C: char *p=(char *)malloc(sizeof(char)*Maxsize);
C++: char *p=new char[Maxsize];
1.访问: p[i]/*(p++)
2.长度:可以用sizeof(p)计算总大小,不可用strlen(p)
3.需要逐一赋值,没有'\0',可以自行添加。


C++定义字符串

string类:

string.h里面有string类,可以直接定义字符串(为类对象)
1.访问:s[i]
2.长度:可以调用length() 函数计算长度 s.length()
3.区别于C:没有 '\0'

string str = "abc";   //str是一个类对象,不可用指针
for (int i = 0; i < str.length(); i++)
    cout << str[i];

C++输入输出

1.直接cin/cout输入输出
注:cin输入Space/Enter/Tab(空格回车tab键)即停止输入。

char s[10];
cin>>s;
cout<<s;
//终止条件
while(cin>>n)

输入:qwe rt
输出:qwe

2.cin.get()
注:Enter(回车)即停止输入。可以接受空格。

char s[20];
cin.get(s,20); //有些类似getline。可以输入多个单词,中间空格隔开。

输入:qwe rty
输出:qwe rty

多次使用cin.get(s,size)需要在中间使用一个无参数cin.get()/getchar()的来消去回车。

char s1[10];
cin.get(s1,10);
cin.get();  //用于消去回车,相当于getchar();
cout<<s1<<endl;
cin.get(s1,5);
cout<<s1<<endl;
CSDN的这个markdown编辑,(p)直接变成了什么鬼符号???

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-06 09:26:01  更:2021-08-06 09:28:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/9 5:39:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码