怎样定义字符串

发布网友 发布时间:2022-03-29 19:11

我来回答

7个回答

热心网友 时间:2022-03-29 20:40

如果你用的是vc 6.0以后的版本,而且文件名后缀保存为cpp的话,那么它不支持 <stdio.h> (这是C语言的标准头文件)
应该写成 <cstdio> (这才是C++的标准头文件),并且在前面加上一句
using namespace std;// 或者你在string,printf前面都加上" std:: "

#include <cstdio>
#include <string>
using namespace std;
int main()
{
string str="hello";
printf("%s", str.c_str()); // 或者写 cout << str;
return 0;
}

// 也可以这样写:
#include <cstdio>
#include <string>

int main()
{
std::string str="hello";
std::printf("%s", str.c_str()); // 或者写 std::cout << str;
return 0;
}

以上代码通过了vc2008和g++测试
其中vc2008的cl.exe版本为:
用于 80x86 的 Microsoft (R) 32 位 C/C++ 优化编译器 15.00.30729.01 版
g++版本为:
g++ (GCC) 4.6.1 Copyright (c) 2011 Free Software Foundation, Inc.

热心网友 时间:2022-03-29 21:58

#include <stdio.h>
#include <string>
using namespace std; // add this line

int main() // modify
{
string str="hello";
printf("%s,没问题啊",str.c_str()); //需要将string对象转换为c风格字符串才行。或者直接用cout
return 0; // add this line
}

热心网友 时间:2022-03-29 23:33

在main()上面增加一行:
#include <stdio.h>
#include <string>
using namespace std; // add this line

main()

热心网友 时间:2022-03-30 01:24

试试
char str[]="hello";//我用是c和c++的定义,不需加
//#include <string> 把他注释掉
return 0;//在最后加上

热心网友 时间:2022-03-30 03:32

#include <string>
后面加上
using namespace std;
然后printf("%s,没问题啊",str);后面加上return 0;

热心网友 时间:2022-03-30 05:57

#include <string>这个应该是用的c++里面的库,所以要加上using namespace std;

热心网友 时间:2022-03-30 08:38

在main()上面增加一行:
#include <stdio.h>
#include <string>
using namespace std;

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com