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++中char型字符串 -> 正文阅读

[C++知识库]C++中char型字符串

cin读取空格前字符串

# include<iostream>
using namespace std;

int main()
{
	 char a[20];
	 cin >> a;
	 cout << "输入的是:" << a << endl;
	 cout << "sizeof(a):" << sizeof(a) << endl; 
	
	 return 0;
}
aaa 111
输入的是:aaa
sizeof(a)20

总结:读到空格便结束


以\0结尾

# include<iostream>
using namespace std;

int main()
{
	 char a[20];
	 cin >> a;
	 
	 cout << "输入的是:";
	 for(int i = 0; a[i] != '\0'; i++){
	 	cout << a[i];
	 }
	 cout << endl;
	
	 return 0;
}
sad 222
输入的是:sad



cin.get()读取一行

# include<iostream>
using namespace std;

int main()
{
	 char a[20];	
	 cin.get(a, 20);
	
	 cout << "输入的是:" << a << endl;
	
	 return 0;

}
aaa 111
输入的是:aaa 111
# include<iostream>
using namespace std;

int main()
{
   char a[]={'a', 32, 'b', 65, ' ', 'B', '\0'};

   cout << a << endl;
   cout << "sizeof(a):" << sizeof(a) << endl; 

   return 0;
}
a bA B
sizeof(a)7



sizeof()和strlen()

# include<iostream>
using namespace std;
#include<bits/stdc++.h>

int main()
{
	char a[12] = {"Hello World"};
	cout << "a:" << a << endl;
	
	cout << "strlen(a):" << strlen(a) << endl;
	cout << "sizeof(a):" << sizeof(a) << endl << endl;
	
	
	a[5]='\0';
	cout <<  "a:" << a << endl;
	cout << "strlen(a):" << strlen(a) << endl;
	cout << "sizeof(a):" << sizeof(a) << endl;
	
	return 0;
}
a:Hello World
strlen(a):11
sizeof(a):12

a:Hello
strlen(a):5
sizeof(a):12

总结:

  • strlen 输出的是可见字符的长度,遇到’\0’就结束了;
  • sizeof 输出的是所有字符的长度,’\0’不结束,也算作是一个字符;


strcat()和strncat():字符串的合并

strcat():将ch2全部合并到ch1上

#include<iostream>
using namespace std;
#include<string.h>

int main()
{   
	char ch1[50] = {"What is your name?"};
	char ch2[] = {"My name is Mike!"};
	
	strcat(ch1, ch2);
	
	//strcat表示ch2中的字符串复制到ch1中,ch1中我们必须保证ch1能够容纳ch1和ch2的所有字符串,否则会产生错误
	cout << "ch1:" << ch1 << endl;
	cout << "ch2:" << ch2 << endl;
	
	return 0;
}
ch1:What is your name?My name is Mike!
ch2:My name is Mike!

strncat():将ch2的部分合并到ch1上

#include<iostream>
#include<string.h> 
using namespace std;

int main()
{   
	char ch1[10] = {"12"};
	char ch2[] = {"abcdef"};
	
	strncat(ch1, ch2, 3);
	//3代表需要复制的ch2中的字符串的个数
	
	cout << "ch1:" << ch1 << endl;
	cout << "ch2:" << ch2 << endl;
	
	return 0;
}
ch1:12abc
ch2:abcdef



strcpy()和strncpy():字符串拷贝

strcpy():将ch2拷贝到ch1上,抹去ch1原来的数据

#include<iostream>
#include<string.h> 
using namespace std;

int main()
{   
	char ch1[10] = {"11222222"};
	char ch2[] = {"abcdef"};
	
	strcpy(ch1, ch2);

	cout << "ch1:" << ch1 << endl;
	cout << "ch2:" << ch2 << endl;
	
	return 0;
}
ch1:abcdef
ch2:abcdef

strncpy()

#include<iostream>
#include<string.h> 
using namespace std;

int main()
{   
	char ch1[10] = {"11222222"};
	char ch2[] = {"abcdef"};
	
	//把ch2前5字符赋值给ch1相应位置 
	strncpy(ch1, ch2, 5);

	cout << "ch1:" << ch1 << endl;
	cout << "ch2:" << ch2 << endl;
	
	return 0;
}
ch1:abcde222
ch2:abcdef



memmove():字符串拷贝

#include<iostream>
#include<string.h> 
using namespace std;

int main()
{   
	char ch1[15] = {"abcdefghijklmn"};
	char ch2[] = {"1234567890"};
	cout<<"原ch1字符串:"<<ch1<<endl;
	
	memmove(ch1, ch2, 10);
	//字符串替换 
	
	cout << "拷贝后ch1:" << ch1 << endl;
	return 0;
}
原ch1字符串:abcdefghijklmn
拷贝后ch1:1234567890klmn

参考博客

C++char型字符串:https://blog.csdn.net/CYKsky/article/details/42065385
C语言的字符串的操作函数:https://blog.csdn.net/wuyuzun/article/details/82117136
https://blog.csdn.net/weixin_46562430/article/details/120385042

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-31 23:45:54  更:2022-03-31 23:47:30 
 
开发: 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年11日历 -2024/11/24 2:17:12-

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