我正在下面作业的问题:如何从C中的函数返回字符串?
鉴于姓和名作为参数,写的 功能
createFBlink()
代码。这些函数返回一个facebook链接 ,它作为Facebook用户的备用电子邮件。持有facebook链接的变量 应包含存储表示facebook链接的字符串所需的最小字节数 。如果 不是名字或姓氏,则函数返回NULL
。例如,如果
firstname = tzuyu
和lastname = chou
, 的脸书链接是[email protected]
。
(查看原始问题陈述here)
我一直在试图将一个字符串返回从createFBlink
为main
。我已经尝试了多种方法,例如将char变成静态,但我不断收到我无法理解的错误,因为我没有很多C的使用经验。
我使用malloc
,但我遇到了一个问题,其中如果有从我从main发送的函数的参数,我最终会在输入后崩溃。这里是我到目前为止的代码:
#include <string.h>
#include <conio.h.>
#include <stdio.h>
#include <stdlib.h>
char *createFBlink(char *firstname , char *lastname) ;
int main(void)
{
char firstname[24] , lastname[24], fblink[24] ;
printf("Enter first name: ");
scanf("%s", firstname);
firstname[strlen(firstname)] = '\0';
printf("\n Enter last name: ");
scanf("%s", lastname);
lastname[strlen(lastname)] = '\0';
*fblink = createFBlink(firstname, lastname);
if(*firstname == '\0'){
printf("no facebook link generated");
}else{
printf("%s", *fblink);
}
getch();
return 0;
}
char * createFBlink(char *firstname , char *lastname)
{
int check1 = strlen(firstname) , check2 = strlen(lastname), num = check1+check2;
char link = (char*) malloc(sizeof(char) * num);
if(check1 == 0 || check2 == 0){
*firstname = '\0' ;
}else{
strcat(*lastname, ".");
strcat(*lastname, firstname);
strcat(*lastname, "@facebook.com");
strcpy(link , *lastname);
return link;
}
}
什么是崩溃?什么线路导致它? (即使你不明白) –
启用警告并尝试重新编译。 – this
如果你想发布问题,你至少可以在这里重新输入,而不是发布一个链接到你的老师的powerpoint图片 – dietbacon