如何从C字符串中取出第一个字母?

use*_*857 5 c string variables scanf char

我想从名字字符串变量中取出第一个字母,并将其添加到姓氏变量的第二个字母中。

到目前为止我的计划是:

#include <stdio.h>

main() {
char firstname [256];
char lastname [256];
printf("What's your first name?: ");
scanf("%c",&firstname);
printf("What is your last name? ");
scanf("%s",&lastname);
printf("\nYour school.edu e-mail address is: %c%s2@school.edu",firstname,lastname);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是,我希望我的代码采用第一个首字母(名字的第一个字母)并将其存储到 firstname 变量中。

MBy*_*ByD 4

由于字符串是字符数组,因此您需要从数组中取出第一个元素:

char firstname_initial;
firstname_initial = firstname[0]
Run Code Online (Sandbox Code Playgroud)

另请注意,由于lastnamefirstname是缓冲区,因此您不需要在中传递指向它们的指针scanf

scanf( "%s", firstname );
scanf( "%s", lastname );
Run Code Online (Sandbox Code Playgroud)

最后一件事 -scanf是一个危险的函数,你不应该使用它。