C++中字符数组转 string类引用问题

函数定义:
void fun(const string &s){
cout<<s<<endl;
}
如果调用fun("hello"),可以正确编译。但是如果把函数定义中的const去掉,则不能正确编译。
问字符数组"hello"是通过什么方式装换成const string &类型的,是某种强制转换吗?
我再C++ primer里没找到相关说明,如有知道的说明下哪本书,那页有说明。

0

5个回答

我知道了,在C++ primer第5版的 2.4.1节有说明,即引用类型与其所引用对象类型不一致时,编译器会生成一个临时的常量,所以如果引用不是const的,则会报错

0

"hello"就是const string类型不需要转换。

0
a1193561652
纵横车 回复fommfomm: 如果自己写string类可以重载赋值运算符,然后把赋值符号右边的操作数复制到string类里面。
接近 4 年之前 回复
fommfomm
fommfomm "hello"是const char *类型吧,string是STL里的,不是C++语言自带的,应该有个类型转换之类的吧。假设自己写个string类,怎么实现上面的转换?
接近 4 年之前 回复

hello直接定义的常量字符串,这是直接初始化的,就是这个类型。

0
fommfomm
fommfomm 能直接初始化的是string类型,但这个是引用类型,所以应该不是转换构造函数的作用。
接近 4 年之前 回复

我觉得问题不是出在const上面,我认为是出在引用上面。引用是不能单独使用的,我建议你加入string str="hello"; fun(s)尝试一下

0

我知道了,在C++ primer第5版的 2.4.1节有说明,即引用类型与其所引用对象类型不一致时,编译器会生成一个临时的常量,所以如果引用不是const的,则会报错

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C++中std::string与C-String字符数组的互相转换
C语言中只有字符数组这一说法,没有C++专门封装的字符串类std::string。而字符数组C-String以\0作为结束符。std::string其实还是存储了C-String这个指针,只不过不同的编译期对std::string中的存储结构都做了不同的处理,这里我们不讨论std::string的实现,只关心一件事,那就是C-String和std::string的相互转换。 C-String 2 ...
c++ string转c 字符数组的方法
 c++ string转换c字符串有三种方法: 1.    const char * string::data()    以字符数组的形式返回字符串内容,但不主动添加'\0', 即char[string.size()]的值是未定义行为 2.    const char * string::c_str()   返回一个以'\0'结尾的字符数组 3.    size_t string::co...
关于C中字符数组,字符指针以及C++中string类型的两两转换及排序
// practise.cpp : 定义控制台应用程序的入口点。 // #include “stdafx.h”#include <string.h> #include <string> #include <algorithm> #include <iostream> using namespace std;int main() { /* 字符串转字符数组,使用strncpy_s(),比s
String 转为 字符数组char[]
String 转为 字符数组char[] 1.    String a = "dadaw";    char[] b = a.toCharArray(); 2.     String a = "dadaw";     char[] b;     for(int i =0;i    {       b[i] = a.charAt(i);     }  
String字符串与字符(char类型)数组互相转换
主要是两个方法: 1.String类的toCharArray()方法,将字符串转为字符(char)数组 String ss=”abc”; char[] cc; cc=ss.toCharArray(); 这时cc={‘a’,’b’,’c’};2.String类的valueOf()方法,将字符(char)数组转换为字符串 char[] cc={‘a’,
java字符数组char[]和字符串String之间的转换
java字符数组char[]和字符串String之间的转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 使用String.valueOf()将字符数组转换成字符串 void (){ char[] s={'A','G','C','T'}; String st=String.valueOf(s); System.out.println(&quot;This is : &quot;+st); } ...
C++中字符数组与string的相互转换
点击打开链接 字符数组转化成string类型 char ch [] = "ABCDEFG"; string str(ch);//也可string str = ch; 或者 char ch [] = "ABCDEFG"; string str; str = ch;//在原有基础上添加可以用str += ch; 将string类型转换为字符数组 char buf[10];
[string] 字符数组转化成string类型 c++
  字符数组转化成string类型 char ch [] = &quot;ABCDEFG&quot;; string str(ch);//也可string str = ch; 或者 char ch [] = &quot;ABCDEFG&quot;; string str; str = ch;//在原有基础上添加可以用str += ch; 转换为string后就可以用string的函数如s.substr(开始位置,字串长度) char...
C语言字符串与C++string对象的相互转换
C语言中字符串以字符数组的形式存储,以’\0’结尾,而C++中引入了string类作为字符串类型,它们之间可以通过以下方法相互转换:C语言字符串=>C++string对象C++中,string类能够自动将C 语言字符串转换成string对象#include <iostream> #include <string> int main(){ const char *s = "Roger!";
C中的字符数组定义和引用(学习笔记)
c语言中,没有专门的字符串变量。。。。汗。。。。。所以,不严谨的说,字符数组相当于字符串。 #include&amp;lt;stdio.h&amp;gt; int main() { int i; char a[5]={'k','a','n','g'}; //比python啰嗦啊。。 //3、初始化字符数组,注意里边的字符元素都用单引号 ...
java字符数组和字符串,StringBuilder和字符串转换
最近在用java刷题,在刷题方面java还是还有c++方便啊。 字符串转字符数组: str=“abc”; char[] a = str.toCharArray(); 记忆:字符串是个类,所以用内建函数 字符数组转字符串: String.valueOf(a); 记忆:类似强制类型转换格式,String(a)
Java中字符数组、String类、StringBuffer三者的相互转换
一、StringBuffer与String的相互转换 1、将StringBuffer转换成String StringBuffer类成员toString函数可将其转换成String类型。 StringBuffer buffer = new StringBuffer(“abcd”); String str = buffer.toString(); 通过String类
C语言 字符数组转换整数 stringToInt
字符串转化整数
字符型数组转换到字符串中
方法1:直接在构造String时转换。char[] data = {'a', 'b', 'c'};String str = new String(data);方法2:调用String类的方法转换。String.valueOf(char[] ch)String 的valueOf()方法可将一切基本类型转换为String类型.
结构体转为字符串数组
        在工作中需要进行发送一包数据,而且数据的格式各不一样,只能定义为结构体的形式,但是发送方式以字符串的形式进行发送,这样就需要将结构体类型的变量转换为字符串数组。下面只是,自己定义的结构体进行的转换,其他的形式都是一样的。在合并的时候一定要注意前面数组的长度一定要在包含后面数组长度之后大于。要不然合并之后就越界了,结果如何,可以自己试验,特别是自己的项目中。#include &amp;lt;...
字符串和数组作为参数传递
链接:https://www.zhihu.com/question/31203609/answer/50992895 1. 类1: public class ArrayTest { //都是引用传递,输出的结果是&quot;goodbbb&quot; public void arrayPassTest(String s, String[] ss) { ...
Java中把string类型转化成字符数组
  关键代码 String string = &quot;abc&quot; ; char [] stringArr = string.toCharArray();       例题: 描述 对于给定的一个字符串,统计其中数字字符出现的次数 输入 输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。 输出 对于每个测试实例,输出该串中数值...
string类字符串,char数组,string数组,StringBuffer之间如何相互转换
public class stringzhuanshuzu { public static void main(String[] args) { // String类型字符串转为char类型数组 String stringArr = “abc” ; char[] charArr = stringArr.toCharArray();
【02】C到C++(引用、内联函数、类型转换)
一、引用引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&amp;amp;代替了*。引用(reference)是c++对C语言的重要扩充。引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。其格式为:类型 &amp;amp;引用变量名 = 已定义过的变量名 int b=10; int &amp;amp;a = b;引用的特点:①一个变量可取多个别名。②引用必须初始化。cons...
java 字符串转化为字符数组的3种方法
你可以选择最简单的方法解题,但是你需要掌握所有的方法当做知识储备 第一种最简单,但是其适用前提是输入:   4(个数)     然后是   1  2  3  4  (也就是输入数字),放入kk数组之中,输出1  2  3  4   import java.util.*; public class Main { public static void main(String a
C++中字符数组与字符串 赋值问题
问题:写一个函数将一个字符串按反序存放。在主函数中输入一个字符串,通过调用该函数,得到该字符串按反序存放后的字符串,并输出。 string c=&quot;asd&quot;; char c1[]=c;//编译不通过,不存在赋值规则 但字符数组可以给字符串变量赋值 如: char c[]=&quot;asd&quot;; string c1=c; 求字符数组长度 引用—&amp;gt;   常见的数组就是字符数组和整型数组,今天...
c++中怎样将字符数组转化成字符串变量
解1:首地址复制 string a; char stringarray[100]; stringarray="changestring"; a=stringarray; 解2:元素按位赋值 string a; char stringarray[100]; stringarray="changestring"; int i=0; while(stringarray[i]!='\0'){ a[i]=s
C语言—如何将字符数组转换为int类型
这里需要用到函数sscanf与sprintf 把前面的s理解为string 就好! sscanf(a,"%d",&n)//是指将字符数组a中的内容向左传递给n 例如下面: int main(){ char a[10]="123"; int n; sscanf(a,"%d",&n); printf("%d",n); return 0; } 将会输出123   且n中储存
结构体与字符数组相互转换
结构体与字符数组相互转换,例如: typedef struct __STUDENT { int iAge; int iYear; int iMonth; }STUDENT,*PSTUDENT; 结构体-->字符串数组 ,方法一 PSTUDENT st = NULL; st = (PSTUDENT)new char[12]; memset(st,0,12); st->iAge
字符串转换到double数组
最近写了一个小工具需要从文件中读出数字以double类型显示并计算(文件中包含空格换行逗号作为完整数字标记 ,并且运行负数),由于需要从读取到的字符串中截取数字稍微麻烦,便动手封装个方法截取转换一次完成。设计函数的过程中也遇到一些小问题,比如整数部分和小数部分的计算方式不一样,只能通过分开计算然后相加完成转换, 整数部分需要乘以10相加 ,小数部分需要除以10相加 ,并且小数部分遇到0不相加选择跳
【C++】 用string类定义字符串数组
#include #include #include #include #include #include using namespace std; int main() { string ans; for(int i=0; i<4; i++) { cin>>ans; cout<<ans<<endl; } } 用字符数
C++ 字符串与字符数组 详解
在C++中,有两种类型的字符串表示形式: C-风格字符串 C++引入的string类 C-风格字符串 C 风格的字符串起源于 C 语言,并在 C++ 中继续得到支持。字符串实际上是使用 null 字符 ‘\0’ 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。 下面的声明和初始化创建了一个 “Hello” 字符串。由于在数组的末尾存储了空字符,所以...
【转】C# String 与 Char[] 数组 相互转换
转自:zrazilmao   String 与 Char[] 数组 相互转换 string 转换成 Char[]   string ss = &quot;abcdefg&quot;;   char[] cc = ss.ToCharArray(); Char[] 转换成string   string s = new string(cc); byte[] 与 string 之间的转换   byte[] bb = E...
Java中char数组(字符数组)与字符串String类型的转换方法
java字符串转换
[练习] 字符串转成字符数组
  using System;namespace 理解数组{    class MainClass    {        public static void Main(string[] args)        {            string zig = &quot;.A day without laughter is a day wasted.&quot;;            char[] cha...
字符数组转为整型数组
/ * * * 将字符数组转为整型数组 * @param c * @return * @throws NumberFormatException */ public int[] converCharToInt(char[] c) throws NumberFormatException { int[] a = new...
cpp中string和字符串之间的相互转换
void charChage(){ //1. string转const char* string s ="hello cpp"; const char* c_s = s.c_str(); cout << c_s << endl; //2. const char*转string 直接赋值即可 // char* 转string也可以这么干 const
C#字符串与char数组互转!
<br />字符串转换成Char数组<br />string str="abcdefghijklmnopqretuvwxyz";<br />char[] chars=str.ToCharArray();<br />char数组转换成字符串<br />char[] chars=new char[]{'a','b','c','d'};<br />string str=new string(chars);
(c#)字符串转换成字符数组 字符串转换成int 数组
(c#)字符串转换成字符数组 字符串转换成int 数组
C++——数组与字符串
目录 一、数组 1.1定义与初始化 1.1.1语法形式 1.1.2使用 1.1.3存储 1.1.4初始化 1.2作函数参数 1.3对象数组 1.3.1定义与访问 1.3.2初始化 1.3.3数组元素所属类的构造函数 二、字符串 2.1字符数组(C风格) 2.1.1字符型数据 2.1.2字符数据的输入输出 2.1.3字符数组 2.2string 类 2.2.1常用...
字符数组、字符串数组转换成字符串
一、字符数组to字符串 直接声明   char[] c={'a', 'b', 'c'}; String s = new String(c); 二、字符串数组to字符串 string是不可变类——利用StringBuffer String[ ] str = {&quot;abc&quot;, &quot;dfe&quot;, &quot;hij&quot;}; StringBuffer sb = new StringBuffer(); ...
java字符串和字符数组相互转化的方法
转载自 https://blog.csdn.net/dizi1802/article/details/81709521 /* java可以使用两种方法直接将字符数组转为字符串 方法1:直接在构造String时转换。 char[] data = {‘a’, ‘b’, ‘c’}; String str = new String(data); 方法2:调用String类的方法转换。 String.va...
C++中字符数组转 string类引用问题
函数定义:nvoid fun(const string &s)n cout<
将C++的std::string类型变量赋值给char类型数组
解决方法如下: char buf[2048]; std::string sendMsg; strcpy(buf,sendMsg.c_str());
Arduino字符串转换为字符数组
void setup() { Serial.begin(9600); } void loop() { unsigned long along = 1234213; String str1 = String(along); str1 += "mimi"; char cArr[str1.length() + 1]; char cArr2[str1.length() + 3]; str
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java学习中常见的问题 java学习中遇到的问题