printf只能输出C语言中的内置数据,string不是c语言内置数据。 更深入的来说:s这个string类型的对象并非单单只有字符串,其内还有许多用于操作的函数,于是&s并非字符串“helloworld”的首地址,而是s这个对象的首地址。 所以要做如下操作: string s = “helloworld”; printf("%s" , s.c_str());//string中c_str()成员方法返回当前字符串的首字符地址。 ...
printf输出字符串是针对char *的,换⾔之,printf只能输出c语⾔中的内置数据,string不是c语⾔内置数据,否则会出现乱码。s这个string类型的对象并⾮单单只有字符串,其内还有许多⽤于操作的函数,于是&s并⾮字符串“中国”的⾸地址,⽽是s这个对象的⾸地址。所以要做如下操作:string s = "中国"...
首先,为了在我们的程序中使用string类型,我们必须包含头文件 <string>。如下: #include <string> //注意这里不是string.h string.h是C字符串头文件 1.声明一个C++字符串 声明一个字符串变量很简单: string Str; 这样我们就声明了一个字符串变量,但既然是一个类,就有构造函数和析构函数。上面的声明没有传入参...
printf输出字符串是针对char *的,换言之,printf只能输出c语言中的内置数据,string不是c语言内置数据,否则会出现乱码。 s这个string类型的对象并非单单只有字符串,其内还有许多用于操作的函数,于是&s并非字符串“中国”的首地址,而是s这个对象的首地址。 所以要做如下操作: string s = "中国"; printf("%s" , ...
用scanf、printf输入输出string型字符串 c语言里是没有string型的,string在c++里面。有的时候在c++里要用scanf、printf输入输出string型字符串,这是可以实现的,不过要做一点处理。 具体操作看代码: #include<cstdio>#include<string>usingnamespacestd;intmain()...
const int N = 110; int main() { string a; // scanf读入string的方法 a.resize(N); //需要预先分配空间 scanf("%s", &a[0]); // printf输出string的方法 printf("%s\n", a.c_str()); //正确的字符串的长度:3 cout << strlen(a.c_str()) << endl; ...
C里面本来就没有string型,字符串是用char数组存储的,用%s输出,例如 main(){ str[]="Hello World!";printf("%s",str); //这里传的是数组名 return 0;} 当然
`stringprintf`函数是C语言的标准库函数之一,用于将字符串格式化输出到标准输出(stdout)或标准错误(stderr)上。函数的原型定义在`<stdio.h>`头文件中: ```c void stringprintf(const char *format, ...); ``` 其中,`format`是格式化字符串,`...`是用于格式化的参数。函数的参数列表中的每个参数都需要显式...
在遇到大量输入输出的时候,我们知道printf & scanf的效率要大于cin & cout。但在用到STL的时候,又难免用到string,于是有以下方法。View Code 1 string test("nothing");2 printf("%s&
因为string不是c语言的内置数据,所以直接printf输出string类型的是办不到的。 要这样输出: printf("%s\n",a.c_str()); 举例: #include<bits/stdc++.h>usingnamespacestd;intmain(){stringa="人生"; printf("%s\n",a.c_str());return0;