将字符复制到带有函数 - C++ 的数组中



Function.h

void copyArray(char, char);

主.cpp

void copyArray(char word[], char temp[]) {
for (int i = 0; i < 50; i++) temp[i] = word[i];
}

奥瑟.cpp

copyArray("CHAMPAGNE", char myArray[50]);

输出

C2664   'void copyArray(char,char)': cannot convert argument 1 from 'const char [10]' to 'char'

已经在谷歌上搜索了错误,查找预编码的函数,什么也没找到 我不能使用字符串

首先:声明和定义不匹配,因为声明指定函数需要两个char,而定义指定函数需要两个char*

void copyArray(char, char); // declaration
void copyArray(char word[], char temp[]) { // definition
for (int i = 0; i < 50; i++) temp[i] = word[i];
}

您需要使声明与定义相同:

void copyArray(char[], char[]); // or void copyArray(char*, char*);

。但是,为了从字符串文本复制,您需要使第一个参数采用const char*,因为字符串文本由const chars组成。

void copyArray(const char word[], char temp[]);

但是,"CHAMPAGNE"中没有50char,因此尝试复制许多会使您的函数访问超出界限"CHAMPAGNE"(结果具有未定义的行为)。不应复制到终止符之外:

void copyArray(const char* word, char* temp) {
do {
*temp++ = *word;
} while(*word++ != ''); // stop when  has been copied
}

但请确保temp有足够的空间容纳您尝试复制到其中的大字符串。

如果要将CHAMPAGNE复制到myArray中,则需要先声明myArray并将其作为参数提供给函数:

char myArray[50];
copyArray("CHAMPAGNE", myArray);

演示

相关内容

  • 没有找到相关文章

最新更新