C++中如何用sprintf()把string类型输入到char[]类型中?

   更新日期:2024.05.03
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());

void main() //这样就可以了
{
string name1 = "test";
const char *name2 = name1.c_str(); //string类型要转化为c字符串下的字符串类型才行,而且string 类型是常量字符串,所以要name2是const类型
char str[20];
sprintf(str,"%s",name2);
cout<<str<<endl;
}

怎么能用sprintf接收string类对象?
在C++中使用string流可以执行相同的操作

#include <iostream>
#include <sstream>
using namespace std;
int main()
{
string name = "test";
char str[20];
stringstream ss;
ss << '[' << name << ']';
ss >> str;
cout << str << endl;
return 0;
}

有那么麻烦嘛

直接strcpy(str, name.c_str())就OK了

sprintf(str,"[%s]",name.c_str());

  • 18981872976 :C++中如何用sprintf()把string类型输入到char[]类型中?
    彭饼卫2055 :答:sprintf是C++继承自C语言的函数,无法直接支持string类型,所以要先把string类型转为基础类型,也就是char*,这里需要使用string类的成员函数c_str();该成员函数功能为,将string的内容转为C语言的字符数组表达形式。所以用spri...
  • 18981872976 :c中sprintf函数
    彭饼卫2055 :答:sprintf 与 printf 类似,只不过输出到 字符串变量。如果 printf("%s%s", tmpday, date); 输出正确 sprintf(edate, "%s%s", tmpday, date); 就应该正确。edate 的长度要设得大一点。"01JAN09" 至少要8 ...
  • 18981872976 :c语言中的sprintf函数?
    彭饼卫2055 :答:3d :就是输出时右对齐,如果数字长度小于3,则左边用空格填充 6d :就是输出时右对齐,如果数字长度小于6,则左边用空格填充 int a=20984,b=48090;sprintf(str,"%3d%6d",a,b);由于a的长度为5,所以不用空格了,而b的...
  • 18981872976 :C++中如何调用sprintf方法
    彭饼卫2055 :答://头文件 include <stdio.h> int main(void){ int a, b;char buffer[100];a = 100;b = 200;//和在c里使用没什么区别 sprintf(buffer, "%d", a + b);printf("%s", buffer);} ...
  • 18981872976 :c++sprintf(st,"%d",w)是啥意思?
    彭饼卫2055 :答:C语言中sprintf()函数的用法 1、该函数包含在stdio.h的头文件中。2、sprintf和平时我们常用的printf函数的功能很相似。sprintf函数打印到字符串中,而printf函数打印输出到屏幕上。sprintf函数在我们完成其他数据类型转换成字符串...
  • 18981872976 :c语言中如何将short,int,long,float这些类型的数值转换为字符串?_百 ...
    彭饼卫2055 :答:sprintf是一个不定参数函数,根据format_string中提供的格式符,将后续参数转为字符串存储在第一个参数dst中。4、使用示例:short a=1;int b=2;long c=3;float d=4;char buf[100];sprintf(buf, "%hd %d %ld %f"...
  • 18981872976 :C语言函数printf怎么用?
    彭饼卫2055 :答:include <stdio.h> int main(void){ char name[20];printf("请输入你的姓名:");scanf("%s",name);printf("你的姓名是:%s\n",name);return 0;}
  • 18981872976 :关于sprintf()
    彭饼卫2055 :答:printf("[ %c ]: %3d 0x%#04X\n", i, i, i);}连接字符串sprintf 的格式控制串中既然可以插入各种东西,并最终把它们“连成一串”,自然也就能够连接字符串,从而在许多场合可以替代strcat,但sprintf 能够一次连接多个字符串(自然...
  • 18981872976 :C语言编程:sprintf(chr,"%s",a[1]);字符数组输出的问题
    彭饼卫2055 :答:1、字符数组输出的时候,应该传入字符组首地址。sprintf(chr,"%s",a);才正确。2、sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比...
  • 18981872976 :如何用C语言编写一个计算正整数位数的程序?
    彭饼卫2055 :答:2、将整数转换为字符串(使用sprintf函数)3、求字符串的长度(strlen函数),即正整数的位数 代码如下:include <stdio.h>#include <string.h>int main(){long num;char str[20];scanf("%ld", &num);sprintf(str, ...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网