柿子饼同学 发表于 2022-4-1 22:44:55

string 的格式化输出是什么

#include <bits/stdc++.h>
using namespace std;

struct stu{
      string name;
      int age;
};

int main(){
      stu s = {{"wwww", 90}, {"dddd", 45}};
      stu *p = s;
      printf("%s", p.name);
}
如上图 , 它不输出 , 感觉是%s有问题 , 所以应该怎么输出
( 别跟我讲 cout , 谢谢 )

人造人 发表于 2022-4-1 22:57:34

#include <bits/stdc++.h>

using namespace std;

struct stu {
    string name;
    int age;
};

int main() {
    stu s = {{"wwww", 90}, {"dddd", 45}};
    stu *p = s;
    printf("%s\n", p.name.c_str());
    return 0;
}

傻眼貓咪 发表于 2022-4-1 23:11:53

name.c_str()

柿子饼同学 发表于 2022-4-2 09:27:32

人造人 发表于 2022-4-1 22:57


额 , 那c_str()这个函数就是可以把 string 转换为 char[...]嘛

柿子饼同学 发表于 2022-4-2 09:30:08

傻眼貓咪 发表于 2022-4-1 23:11
name.c_str()

所以c_str()就可以把 string 转换为 char 嘛

傻眼貓咪 发表于 2022-4-2 10:02:17

柿子饼同学 发表于 2022-4-2 09:30
所以c_str()就可以把 string 转换为 char 嘛

虽说成转换也是没有错,但 c_str() 是string 的类成员,其返回和 string 一样的字符串,但是以 char 格式返回。

傻眼貓咪 发表于 2022-4-2 10:08:21

柿子饼同学 发表于 2022-4-2 09:30
所以c_str()就可以把 string 转换为 char 嘛

在 C++ 里,我个人是非常喜欢用 string 多于 char,因为很多方法又方便,完全如同 Python 的 str() 一样多功能,至于 C 的 char 绑手绑脚,很多功能都必须借助头文件解决(比如:string.h),麻烦死了。

柿子饼同学 发表于 2022-4-2 10:09:05

傻眼貓咪 发表于 2022-4-2 10:08
在 C++ 里,我个人是非常喜欢用 string 多于 char,因为很多方法又方便,完全如同 Python 的 str() 一样 ...

哈哈哈 , stl就是好用啊
谢谢回答{:10_254:}
页: [1]
查看完整版本: string 的格式化输出是什么