上高县城乡规划建设局网站,h5网站还有哪些,常用的网站类型有哪些类型有哪些,哪家专门做特卖的网站?上一篇说了三个整数比较大小#xff0c;按照顺序输入的#xff0c;这次我们看看字符串的#xff0c;顺便把那个简化以下#xff1a; 题目:这次输入三个字符串。如果用户输入“Stenbeck, “Hemingway”,“Fitzgerald”,输出将是“Fitzgerald#xff0c;Hemingway按照顺序输入的这次我们看看字符串的顺便把那个简化以下 题目:这次输入三个字符串。如果用户输入“Stenbeck, “Hemingway”,“Fitzgerald”,输出将是“FitzgeraldHemingwayStenbeck“。 还记得字符串可以比较大小的本质吗它就是三个字符串相同位置的字母按其在ASSIC码中的顺序依次左到右进行比较字符串的大小取决于第一个有差异的字母的顺序。
void swap(string a, string b){int temp a;a b;b temp;
}void compare(string first, string second, string third){//do something
}int main()
{cout Please enter three integer number:\n;string first_num, second_num, third_num;cin first_num second_num third_num;compare(first_num,second_num,third_num);
}
高兴地输入这段代码后发现没有出现我预想的结果。搜罗许久原来是这个原因 问题出在compare函数中对字符串参数的处理方式上。在compare函数中你传递了三个字符串参数firstsecond和third但它们是按值传递的这意味着函数内部对它们的修改不会影响到main函数中的原始字符串。 当你在compare函数中使用swap函数交换字符串时你实际上只是交换了函数内部的局部副本而不是main函数中的原始字符串。 所以把代码改成如下就完事拉。
void compare(string first, string second, string third){//do something
}结果是出来但是我写得compare有点啰嗦太过于复杂啦。反正三个字符两两比较一次就能出现正确的答案 下面是该给出的办法:
#includeiostream
#includestring
#includevector
#includealgorithm
#includecmath
using namespace std;void swap(string a, string b){string temp a;a b;b temp;
}void compare(string first, string second, string third) {if (first second) swap(first, second);if (first third) swap(first, third);if (second third) swap(second, third);cout first , second , third \n;
}int main()
{cout Please enter three strings:\n;string first_num, second_num, third_num;cin first_num second_num third_num;compare(first_num,second_num,third_num);
}所以三个数字该怎么做呢你懂了吧!