字符串指针赋值小结

字符串指针赋值小结字符指针赋值探究小结1,字符指针有初始值时,不能修改其中字符的值#include<iostream>usingnamespacestd;intmain(){ char*p1=”nihao”;//字符指针赋值给字符指针只能读不能修改字符的值 …

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

字符指针赋值探究小结

1, 字符指针有初始值时,不能修改其中字符的值

#include<iostream>
using namespace std;
int main()
{ 
     
	char *p1 = "nihao";//字符指针赋值给字符指针只能读不能修改字符的值
	char *p2 = p1;
	p1[0] = 'm';//尝试修改,会报错
	return 0;
}

   
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

会报错:
在这里插入图片描述

2,字符指针赋值给另外一个字符指针,接受字符串的指针也只能进行读取操作。

#include<iostream>
using namespace std;
int main()
{ 
     
	char *p1 = "nihao";//字符指针赋值给字符指针只能读不能修改字符的值
	char *p2 = p1;
	p2[0] = 'm';//尝试修改,会报错
	return 0;
}

   
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

同样报错:访问权限的问题
在这里插入图片描述
3,如果想要对字符指针里面的值进行操作怎么办呢?
看例子:
1)用C语言中strcpy函数

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
int main()
{ 
     
	char *p1 = "nihao";
	char *p2=new char[sizeof(p1)+1];//new 开辟一段新的内存,注意要加上1,要加上字符串末尾‘\0’
	strcpy(p2, p1);//调用字符串copy函数
	p2[0] = 'm';//对新开辟的内存进行操作
	cout << p2<<endl;//输出操作后的结果
	cout << p1<<endl;//对原来字符串没有影响,原来字符串可以看做常量,不能修改。

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2)可以用C++中string 类解决

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<string>
using namespace std;
int main()
{ 
   
	string a= "nihao";
	string b = a;
	b[2] = 'M';//将一个string a赋值给另外一个string b后,可以对b进行操作,对原来那个string a类没影响。
	/*a[1] = 'M';*/
	cout << b<<endl;//输出操作结果
	cout << a << endl;//对原来那个string a类没影响,验证结果

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

在这里插入图片描述

补充:字符串小结

1.string 类不能赋值字符串指针
2.字符串指针可以赋值给string类
3.string 类有初始值后不能看做常量,其中的值也可以修改。(这点和字符指针常量做区分!!)
4.将一个string a赋值给另外一个string b后,可以对b进行操作,对原来那个string a类没影响

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/157703.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • HDU 1061 Rightmost Digit解决问题的方法

    HDU 1061 Rightmost Digit解决问题的方法

  • 电商网站的商品详情页系统架构

    电商网站的商品详情页系统架构电商网站的商品详情页系统架构1小型电商架构:小型电商网站的页面展示采用页面全量静态化的思想。数据库中存放了所有的商品信息,页面静态化系统,将数据填充进静态模板中,形成静态化页面推入Nginx服务器。用户浏览网站页面时,取用一个已经静态化好的html页面,例如freemarker,thymeleaf等,直接返回回去,不涉及任何的业务逻辑处理。例如下面一个简单的魔板…

  • rsync远程同步文件_通过ssh传输文件

    rsync远程同步文件_通过ssh传输文件对于需要远程同步文件来说,我们常见的方式有scp或者rsync,但是想定时任务去同步的话,往往都需要设置免密登录,为安全起见,线上服务器没必要设置这个,且添加新的机器又要去设置免密,着实比较麻烦。采用rsync客户服务端的话,只需要设置一个密码即可。这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,…

    2022年10月13日
  • 基于Java和MySQL的图书管理系统[通俗易懂]

    Java图书管理系统设计人:wangyunpeng_bio项目需求随着计算机的普及和应用水平的提高,经过考察比较,决定利用自己的Java知识开发小型的图书管理系统,方便图书的管理。图书管理系统是典型的信息管理系统。本次作业利用JAVA开发工具Eclipse和MySQL数据库来开发这个图书管理系统。该系统要解决的图书管理所要解决的问题,可以满足图书管理基本要求,包括添加、管理等功能。…

  • 高德坐标拾取器_坐标拾取器百度地图

    高德坐标拾取器_坐标拾取器百度地图页面效果应用场景:你需要在一个弹窗中拾取一个高德的地址坐标。12345酸奶小妹的火星坐标672627282930坐标拾取工具(GCJ-02坐标)31说明:…

  • Python学习笔记22:Django下载并安装

    Python学习笔记22:Django下载并安装Django它是一个开源Web应用程序框架。由Python书面。通过MVC软件设计模式,这种模式M,视图V和控制器C。它最初是一个数字新闻内容为主的网站已经发展到管理劳伦斯出版集团。那是,CMS(内容

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号