c语言中如何借用指针输出字符串 c怎么把char转换为string就是字符?
c怎么把char转换为string就是字符?
1.如果要将字符串转换成char*,可以使用string提供的函数c_str()或者函数data()。data返回不带终止符#390#39的字符串内容,c_str()返回以 0 。
char *c_str()c_str()函数返回一个指向常规C字符串的指针,其内容与这个字符串string相同。这是为了和C语言兼容,C语言没有字符串类型。所以字符串对象必须通过字符串类对象的成员函数c_str()转换成C中的字符串样式。注意:c_str()方法返回的指针必须使用strcpy()函数进行操作,比如最好不要这样做:: char * cs strings # 341234 # 34。
c s.c _ str()
//C最后指向的内容是垃圾,因为S对象被析构,其内容被处理。
char c[20]string s # 341234 # 34 strcpy(c,s.c _ str())以免出错。c_str()返回一个临时指针,不能作。再比如,c_str()以char*的形式返回一个包含string的字符串。如果一个函数需要char*参数,可以用C _。#34
printf(#34%s#34,s.c_str())
//Output #34H
为什么说字符串是指针?
C语言中有一个概念叫指针。有时候一个指针还不够,还需要一个双指针。事实上,指针就是一个地址。
当程序运行时,变量存储在内存中。如何访问这些数据需要内存地址。内存地址是一个十六进制数,比如0x403024,可以代表一个变量,也可以访问一个变量。
但是如果变量很长,那么指针就出现了,它可以给变量一个别名,就是一个字符串。字符串的变量名是指向字符第一个字符的指针。
如何用C 输出字符串?
C中的Cout太聪明了。为了省去我们循环输出字符的麻烦,coutltltpltltendl被翻译成输出p指向的字符串值,这时候如果要输出p的指针值,只能转换成void*再输出。由于空类型,cout可以 t输出,所以只能输出指针。
另外,coutltltamppltltendl并不可取,它实际上相当于printf(#34%p/n#34,ampp).该命令如下所示:
void main(){ char * p2 # 34 ABCD # 34 coultlt * p 2 ltltendlcoutltp 2 ltltendlprintf(# 34% p/n # 34,ampp 2)coultampp 2 ltltendlvoid * PP 2 cutttltpltendl }输出结果如下:0046F020是p的值,0013FF7C实际上是Ampp。aabcd 0013 ff 7c 0013 ff 046 f 020 pressanykeyto继续。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。