[英]c++: strcpy not working with char array
我正在對名稱數組進行排序,而我的IDE給我“沒有匹配的函數來調用'strcpy'。這是我設置的值:
char Names [MaxNames] [MaxCharsPerName + 1];
const int MaxNames (20);
const int MaxCharsPerName (15);
這是我的功能
void SortNames (const char Names[][MaxCharsPerName + 1], int NumNames)
{
int i;
int NumElements;
bool Sorted;
char Temp; // size 15?
NumElements = NumNames;
do {
Sorted = true;
NumElements--;
for (i = 0; i < NumNames; i++)
{
if(Names[i-1] > Names[i]){
strcpy(Temp, Names[i]);
strcpy(Names[i], Names[i+1]);
strcpy(Names[i+1], Temp);
}
}
} while (!Sorted);
我是否必須使用參考或其他內容?
哦,這些在最上面:
using namespace std;
#include "Constants.h"
#include "Functions.h"
#include <string.h>
#include <stdio.h>
char Temp; // size 15?
Temp
是一個char
而strcpy
期望一個char *
(在您的情況下,編譯器將給出編譯錯誤 )。
改用char
數組-
char Temp[MaxCharsPerName + 1]; // any desired size but reserve place for '\0'
然后將其傳遞給strcpy
。
對名稱數組進行排序可以輕松得多:
vector<string> names;
// ...
sort(begin(names), end(names), less<string>());
for (const auto& name : names) cout << name << '\n';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.