博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
no matching function for call to ‘std::basic_string<char>::assign(std::string&, int)
阅读量:6068 次
发布时间:2019-06-20

本文共 980 字,大约阅读时间需要 3 分钟。

使用string中的assign赋值函数报错,代码为:

text0.assign(line,i+1);其中text0与line都为string类型

最后发现assign函数的原型为

string &assign(const char *s,int n);

将代码改为以下即可

text0.assign(line.c_str(),i+1);

 

附  assign函数

string &operator=(const string &s);//把字符串s赋给当前字符串string &assign(const char *s);//用c类型字符串s赋值string &assign(const char *s,int n);//用c字符串s开始的n个字符赋值string &assign(const string &s);//把字符串s赋给当前字符串string &assign(int n,char c);//用n个字符c赋值给当前字符串string &assign(const string &s,int start,int n);//把字符串s中从start开始的n个字符赋给当前字符串string &assign(const_iterator first,const_itertor last);//把first和last迭代器之间的部分赋给字符串

及  char*、char[]与string转换方式

1.  string --> char *

char *     =    string.c_str;

2.  char * --> string 

//可以直接赋值。string s;char *p = "abcdef";s = p;

不过,变为string后使用printf输出会出现问题,用cout没有问题。是因为“%s”要求后面的对象的首地址。但是string不是这样的一个类型。

3. string --> char[]

不可直接赋值,使用循环赋值

string pp = "dagah";    char p[8];    int i;    for( i=0;i

4.  char[] --> string

可以直接赋值,但会出现2中的问题

 

参考:  http://blog.csdn.net/cogbee/article/details/8931838

你可能感兴趣的文章
价值1400美元的CEH(道德黑客)认证培训课程长啥样?(3)工具集
查看>>
Docker数据卷
查看>>
vscode常用设置
查看>>
程序员之---C语言细节20(符号和有符号之间转换、两数相加溢出后数值计算)...
查看>>
zookeeper学习
查看>>
【mac】mac上安装软件,报错 鉴定错误,但是安装包都是好的
查看>>
设计模式的6大原则
查看>>
【转】观看视频时启用硬件加速有什么用?如果关闭硬件加速又有什么区别呢?...
查看>>
Weblogic12c 单节点安装
查看>>
CentOS7下安装Docker-Compose操作记录
查看>>
【wpf】在win10系统上弹出toast和notification
查看>>
.axf 转化 .bin文件 的方法
查看>>
sql server无log ldf日志文件附件mdf数据库重新生成ldf日志文件
查看>>
Chapter 4 Invitations——15
查看>>
Spring Boot 2.0 Release Notes
查看>>
谈一谈python的垃圾回收机制
查看>>
windows上使用的免费连接linux终端xshell6,xftp6下载
查看>>
LeetCode 总结
查看>>
在Linux 中安装不了程序?教你一招解决!
查看>>
取得汉字拼音首字母的绝妙方法
查看>>