簡體   English   中英

如何在 Turbo C++ 中聲明多個變量

[英]How to declare multiple variables in Turbo C++

我試圖將兩個局部變量傳遞給另一個塊,但是在編譯我的代碼時,此錯誤顯示:

(錯誤 93:) 預期)

我正在使用 Borland Turbo C++ 3.0。 我不知道我哪里出錯了; 有人可以指出我正確的方向嗎?

char create_username(char forename,surname)
{      
     strcpy(forename);
     strcpy(surname);

     strcat(forename,surname);

     return username;

}

甚至 Turbo C++ 幾十年前就以正確的方式實現了這一點。

需要聲明函數參數,明確給出它們的類型:

char create_username(char forename, char surname)
                                 // ^^^^ This is needed!

與聲明一堆局部變量相反,可以使用多重定義語法:

void foo() {
    char forename, surname;
}

另請注意, char僅存儲單個字符,您無法存儲forename / surname

類型應該是std::string


當您在此評論中澄清您的要求時

我正在嘗試通過使用名字的第一個字母和全名加入來創建用戶名,...

你的函數應該看起來像:

std::string create_username(const std::string& forename, const std::string& surname) {      
     return std::string(forename[0],1) + surname;
}

從字面上看,一切都是錯誤的。

char create_username(char forename,surname)

這返回一個字符? surnameforename是每個字符? 那不可能是對的。

 strcpy(forename);

由於forename是一個字符,而不是一個字符串,它不能傳遞給strcpy 還有——復制到哪里?

 strcat(forename,surname);

如果您只是要將原始文件傳遞給其他函數,為什么還要復制forenamesurname 你認為這有什么作用? 你認為它將名字和姓氏連接到......什么?

 return username;

username從何而來?

這個給你。

#include <iostream>
#include <cstring>

char * create_username( const char *forename, const char *surname )
{
    size_t n = std::strlen( forename ) + std::strlen( surname ) + 1;
    char *username = new char [ n + 1]; // one more for the blank between names

    std::strcpy( username, forename );
    std::strcat( username, " " );
    std::strcat( username, surname );

    return username;
}

int main()
{
    const char *forename = "Craig";
    const char *surname = "Cheney";

    char *username = create_username( forename, surname );

    std::cout << username << std::endl;

    delete [] username;
}

輸出是

Craig Cheney

如果您的編譯器不支持命名空間和新的 C++ 頭文件,那么您可以編寫如下內容

#include <iostream.h>
#include <string.h>

char * create_username( const char *forename, const char *surname )
{
    size_t n = strlen( forename ) + strlen( surname ) + 1;
    char *username = new char [ n + 1]; // one more for the blank between names

    strcpy( username, forename );
    strcat( username, " " );
    strcat( username, surname );

    return username;
}

int main()
{
    const char *forename = "Craig";
    const char *surname = "Cheney";

    char *username = create_username( forename, surname );

    cout << username << endl;

    delete [] username;
}

首先是一些友好的建議——您應該查看介紹以了解該網站的運作方式。 您的問題措辭不佳,除非您編輯和修復它以符合站點規則,否則它很可能會被關閉並刪除,因為它沒有建設性。 如果你懶得用合適的英語寫出合適的問題,你將很難找到幫助。

其次,你的代碼中有很多錯誤,這表明你不了解C/C++語言的基本概念,而且你也懶得去檢查C/C++語言的語法。 只需在Google 上搜索您要使用的函數名稱,就會向您展示如何正確調用它們——這里是strcpy()的示例。

如果你想成為一名優秀的程序員,你需要付出更多的努力來學習新事物。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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