error: incompatible types in assignment of `std::string' to `char[10]'
作者&投稿:佴琰 (若有异议请与网页底部的电邮联系)
下面给c赋值也同理,要用 strcpy
这里得用strcpy,直接写就错了。在定义时可以直接赋值
char name[10];改为
string name;
问题比较多,主要的问题有以下几点
1 char separator[]="\t,:\v\r\n\f "; 里面要有' '否则无法区分出单词
2 minlen应该初始化为一个很大的数字,否则永远没有单词的长度小于0的。
minlen = 1000;
3.sentence.assign(sentence,startpos,endpos-startpos);
assign方法会修改字符串sentence的内容,因此sentence直接就变成那个单词了。应该使用下面这行
word=string(sentence,startpos,endpos-startpos);
还有其他一些问题不再赘述。
以下是我修改以后的代码,运行应该是正确的。
如果还有不明白的,可以HI我。
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
const string line1="We were her pride of 10 she named us:";
const string line2="Benjamin, Phoenix, the Prodigal";
const string line3="and perspocacious pacific Suzanne";
string sentence=line1+' '+line2+' '+line3;
//string sentence;
char separator[]="\t,:\v\r\n\f ";
string word;
string::size_type startpos=0,endpos=0;
int count=0,wordlen=0,maxlen=0,minlen=1000;
vector<string> maxword;
vector<string> minword;
vector<string>::iterator iver;
while((startpos=sentence.find_first_not_of(separator,endpos))!=string::npos)
{
count++;
endpos=sentence.find_first_of(separator,startpos);
if(endpos == string::npos)
{
word = string(sentence, startpos);
}else
{
word=string(sentence,startpos,endpos-startpos);
startpos = endpos + 1;
}
wordlen = word.length();
if(wordlen==maxlen){
maxword.push_back(word);
}else if(wordlen>maxlen){
maxword.clear();
maxword.push_back(word);
maxlen=wordlen;
}
if(wordlen==minlen){
minword.push_back(word);
}else if(wordlen<minlen){
minword.clear();
minword.push_back(word);
minlen=wordlen;
}
}
cout<<"word count:"<<"\t\t"<<count<<endl;
cout<<"longest word:"<<endl;
for(iver=maxword.begin();iver!=maxword.end();iver++){
cout<<*iver<<"\t\t";
}
cout<<endl;
cout<<"short count:"<<endl;
for(iver=minword.begin();iver!=minword.end();iver++){
cout<<*iver<<"\t\t";
}
return 0;
}
伍言菲科: 原因: BIOS版本不能完整地支持ACPI高级模式解决办法: 1、升级BIOS 2、在BIOS里面禁用ACPI, (开机进入BIOS,选择Power Management Setup - ACPI Function Disabled) 说明: ACPI controller是ACPI Advanced Configuration 和 ...
磴口县13296314289: 急求:C语言代码incompatible type for的错误怎么改正,如果修改好还有加分 - ?
伍言菲科: 回答在你下半部分里面了 就改一个地方就好 else if(3==j) { result = Function3(X,Y); }
磴口县13296314289: 电脑启动的时候CMOS的错误提示都有那些??
伍言菲科:下面是一些常见的错误提示信息短句的解释 1、CMOS battery failed 中文直译:CMOS电池失效. 解决方法:一般出现这种情况就是说明给主板CMOS供电的电池已经快没电了,需要朋友们及时更换主板电池. 2、CMOS check sum error-...
磴口县13296314289: 连接宽带错误651:调制解调器(或其他连接设备)报告了一个错误 - ?
伍言菲科: 错误代码651意思为 您的调制解调器(或其它连接设备)报告了一个错误.既未找到指定的端口.解决办法:1、远程访问记事簿文件和当前的“网络和拨号连接”配置可能不一致如果更改了通讯设备(例如:串行口或调制解调器),请确保重...
磴口县13296314289: 常见BIOS报错信息及解决方法?
伍言菲科: BIOS ROM checksum error-System halted 翻译:BIOS信息在进行检查(checksum)时发现错误,因此无法开机. 解析:通常是因为BIOS信息刷新不完全所造成的,重新刷新主板BIOS即可. CMOS battery failed 翻译:CMOS电池失效. 解析...
磴口县13296314289: 开机系统错误提示 - ?
伍言菲科: 错误信息:CH-2 TIME ERROR 这是主板时钟TIME #2发生错误时的出现的提示信息,通常须更换主板. *错误信息:CMOS BATTERY STATE LOW 系统中有一个用于存放CMOS参数的电池,该提示的意思是该电池已用完须更换. *错误信息:...
磴口县13296314289: bios错误信息怎么解决?
伍言菲科: 1.CMOS battery failed(CMOS电池失效) 原因:说明CMOS电池的电力已经不足,请更换新的电池. 2.CMOS check sum error-Defaults loaded(CMOS执行全部检查时发现错误,因此载入预设的系统设定值) 原因:通常发生这种状况都是因为电池...
磴口县13296314289: 为什么我的电脑老出现Error!Can't initialize plug - ?
伍言菲科: Error!Can't initialize plug-ins directory 出现此故障原因是:电脑里的某些软件冲突.特别是一些虚拟类软件. 比如虚拟光驱,虚拟机,窗口化软件D3DWindower,YY多开器等. 或是其他一些内存进程类隐藏软件.请用排除法一个个排除. 如果是蠕虫等病毒软件.那么只能恢复干净的镜象系统,或是重新安装系统. 这个问题的原理是物理内存和虚拟内存被占据,如果能解决这个问题,那么不用恢复系统也是可行的.比如找到占据内存的软件,手动关闭他的进程即可!-----希望对你有点用处,建议排除故障后立即找杀软帮手.
磴口县13296314289: 发那科系统参数输入时INC显示方式错误怎么办 - ?
伍言菲科: 把模式打到MDI就好了,输入参数要在MDI状态才可以.
磴口县13296314289: C语言里的变异错误error:stray'\243'in program是什么意思啊? - ?
伍言菲科: error:stray'\243' in program 错误:程序中的243 例句 1、the principle and method to deduce wavefront error due to stray light fringe pattern; 引起波面测量误差的干涉场杂纹消除的原理和方法; 2、In the tissue impedance spectroscopy ...