我正在尝试将两个局部变量传递给另一个块,但在编译我的代码时,此错误显示:
(错误93:)预期)
我正在使用Borland Turbo C ++ 3.0。我无法弄清楚我哪里出错了;有人能指出我正确的方向吗?
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellIdentifier = "TableViewCell" // your cell identifier name in storyboard
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! PFTableViewCell
cell.likeButton.selected = vote == 1
cell.dislikeButton.selected = vote == -1
cell.likeButton.titleLabel!.text = "\(likeCount)"
cell.dislikeButton.titleLabel!.text = "\(dislikeCount)"
return cell
答案 0 :(得分:1)
甚至Turbo C ++几十年前也以正确的方式实现了这一点。
需要声明函数参数,明确地给出它们的类型:
char create_username(char forename, char surname)
// ^^^^ This is needed!
与声明一组局部变量相反,其中可以使用多重定义语法:
void foo() {
char forename, surname;
}
另请注意,char
只存储一个字符,而您无法存储 forename / 姓氏。
类型应该是std::string
。
当您在此comment
中澄清您的要求时我想通过使用forename的第一个字母和完整的姓氏来加入用户名,...
你的功能应该看起来像:
std::string create_username(const std::string& forename, const std::string& surname) {
return std::string(forename[0],1) + surname;
}
答案 1 :(得分:0)
字面意思是一切都错了。
char create_username(char forename,surname)
这会返回一个字符吗? forename
和surname
是每个角色吗?这不可能是正确的。
strcpy(forename);
由于forename
是一个字符,而不是字符串,因此无法将其传递给strcpy
。但是 - 复制到哪里?
strcat(forename,surname);
如果您要将原始版本传递给其他函数,为什么要复制forename
和surname
?你觉得这有什么作用?你认为它将姓氏和姓氏连在一起......什么?
return username;
username
来自哪里?
答案 2 :(得分:-2)
你在这里。
#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;
}
答案 3 :(得分:-2)
首先提供一些友好的建议 - 您应该查看introduction以了解此网站的运作方式。您的问题措辞不当,除非您编辑并修复它以符合网站规则,否则它很可能会被关闭并删除为非建设性的。如果你不能用正确的英语写出正确的问题,你将很难找到帮助。
其次,您的代码中存在许多错误,这些错误表明您不了解C / C ++语言的基本概念,并且您还没有检查C / C ++语言语法。只为你想要使用的函数名做Google search会向你展示如何正确调用它们 - 这是strcpy()的一个例子。
如果你想成为一名优秀的程序员,你需要付出更多努力来学习新事物。