www.dbpj.net > C++中怎么把string类型传入ChAr*类型的函数参数中

C++中怎么把string类型传入ChAr*类型的函数参数中

string str; 对于函数fun(char *,xx,..) 使用fun(str.c_str(),xx,.)可把string类型传入char*类型的函数参数中.string是C++编程语言中的字符串. string类是不可变的,对string类的任何改变,都是返回一个新的string类对象,而char *是C语言中的字符指针,两者进行相应的转换,即可进行专递.

void output(const char *p) { for(;*p!='\0';p++)//这样必然是不行的,因为p是一个const类型的指针,所以是不能改变它的值的 cout} 如果你要把string作为参数,就可以这样写啊 void output(string p) { for(int i=0;icout//也可以直接用cout} string是非常强大的.

scanf是c语言,string 是类(c++).不能直接赋值吧可以这样:char buf[1024];string s;scanf("%s",buf);s=buf;最好不要混合使用c和c++的io库.直接用cin#include #include using namespace std;string s;cin >> s;

int main(int argc, char *argv[]) 这是一个从外部输入一段字符串,然后argv指向这个字符串,输入的字符串的总数目,为argc的数值比如生成了1.exe这个文件,然后在cmd命令下输入 1.exe abc bcdabc 和bcd都是输入给程序的字符串,*argv[0]指向abc,*argv[1]指向bcd而argc的值为2

会的!假设有定义void fun(const string& s){}那么当调用 fun("123");时, 会在栈中创建一个string的对象,并且用“123”初始化; 然后用这个对象做参数传给fun(); 最后在fun()返回后这个string对象析构.

sprintf是C++继承自C语言的函数,无法直接支持string类型,所以要先把string类型转为基础类型,也就是char*,这里需要使用string类的成员函数c_str();该成员函数功能为,将string的内容转为C语言的字符数组表达形式.所以用sprintf将string对象str,输出的char[]数组array中的代码可以写作:sprintf(array, "%s", str.c_str()); 除此外,还可以用strcpy函数,使代码更简单:strcpy(array, str.c_str());

char* s1 = "abcd "; string s=s1;直接复值就行了

因为那是argv[1]而不是argv[2]……

c++ 支持 c 的标准库.可以在c++里和c 一样操作,下面是个例子.#include <string.h>#include <stdio.h> int main() { char s[100]; scanf("%s", s); }也可以用 c++ 中的 cin 和 string 类型.#include <iostream>#include <string>#include <string.h>

在谭浩强书中对switch后面的“常量表达式”的说明是:switch后面的括弧内的“常量表达式”,ansi标准允许它为任何类型.请注意是ansi标准.也就是说你使用的常量表达式 如果可以转换成ansi那么它就可以为任何类型.但是如果你使用的是浮点型呢? 请试一试你的这个题里 请问"ab"这样的string类型转换为ansi是什么呢?所以switch后面的常量表达式并不是可以支持任意类型,char 和 int 用switch 比较合适,其他类型不建议使用switch

相关搜索:

网站地图

All rights reserved Powered by www.dbpj.net

copyright ©right 2010-2021。
www.dbpj.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com