簡體   English   中英

C ++:strcpy無法使用char數組

[英]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是一個charstrcpy期望一個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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM