我正在尝试将一个字符(字符串数组索引0)复制到另一个包含30个索引的字符串数组。
这是一个从两个字符串数组生成用户名的程序。 firstName和lastName。 用户名的格式必须是:jsmith (例如:用户输入约翰史密斯。输出应该是jsmith。)
这就是我所拥有的。
void generateName(char firstName[15],char lastName[15])
{
char userName[30];
strcpy(userName, firstName[0]);
strcpy(userName, lastName);
cout << "Your newly generated username is: " <<userName <<endl;
getch();
}
我收到了这些错误:
无法将'int'转换为'const char *' 调用'strcpy char *,const char *)'时参数'_src'中输入不匹配 从不使用参数'firstName'
非常感谢任何帮助。
答案 0 :(得分:0)
因为你需要使用
strcpy(userName, &firstName[0]);
代替。 strcpy
的参数需要是指针,而是在char数组中传递第一个字符的值。
但是上面strcpy
的调用会复制整个 firstName
- 包括空终止符。如果您只想复制第一封信,您可以这样做:
memcpy(userName, &firstName[0], 1);
strcpy(&userName[1], lastName); // append last name