C++ 关于strcpy_s函数
我想输出三个国家中第一个字母的最小字母,这是代码:C++ 关于strcpy_s函数,c++,string,strcpy,C++,String,Strcpy,我想输出三个国家中第一个字母的最小字母,这是代码: #include<iostream> #include<string> using namespace std; int main() { void smallest_string(char str[][30], int); int i; char country_name[3][30]; for (i = 0; i < 3; i++) cin >> co
#include<iostream>
#include<string>
using namespace std;
int main()
{
void smallest_string(char str[][30], int);
int i;
char country_name[3][30];
for (i = 0; i < 3; i++)
cin >> country_name[i];
smallest_string(country_name, 3);
system("pause");
}
void smallest_string(char str[][30], int n)
{
int i;
char string[30];
***strcpy_s(string, str[0]);***
for (i = 0; i < n; i++)
if (strcmp(str[i], string) < 0)
strcpy_s(string, str[i]);
cout << endl << "the smallest string is:" << string << endl;
}
#包括
#包括
使用名称空间std;
int main()
{
无效字符串(字符str[][30],int);
int i;
char country_name[3][30];
对于(i=0;i<3;i++)
cin>>国家名称[i];
最小字符串(国家/地区名称,3);
系统(“暂停”);
}
无效字符串(字符str[][30],整数n)
{
int i;
字符串[30];
***strcpy_s(string,str[0])***
对于(i=0;ii=1开始,则行strcpy_s(string,str[0]);
是必不可少的
但是,由于它是从i=0
开始的,因此如果还定义了以下开始条件,则不严格要求它:string[0]==CHAR\u MAX
和string[1]==0
。但如果不是这样,那么您将体验到未定义的行为。当您删除该行时,您认为string
中会有什么内容?(还有为什么您使用char
数组而不是std::string
?)似乎没有必要为string[30]的每个元素赋值你正在编写C++,所以使用<代码> STD::vector < /Cd>和:代码> STD::String < /C> >而不是原始代码的<代码> char []/COD> <代码> StrcPyys需要三个参数,而不是两个参数。