[英]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)
這返回一個字符? 和surname
和forename
是每個字符? 那不可能是對的。
strcpy(forename);
由於forename
是一個字符,而不是一個字符串,它不能傳遞給strcpy
。 還有——復制到哪里?
strcat(forename,surname);
如果您只是要將原始文件傳遞給其他函數,為什么還要復制forename
和surname
? 你認為這有什么作用? 你認為它將名字和姓氏連接到......什么?
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.