5

firstname 文字列変数から最初の文字を取得し、lastname 変数の 2 番目の文字に追加したいと考えています。

これまでの私のプログラムは次のとおりです。

#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;
}

ただし、コードで最初のイニシャル (名の最初の文字) を取得し、それを firstname 変数に格納したいと考えています。

4

6 に答える 6

4

文字列は文字の配列であるため、配列から最初の要素を取得する必要があります。

char firstname_initial;
firstname_initial = firstname[0]

また、lastnamefirstnameはバッファであるため、 でそれらへのポインタを渡す必要がないことに注意してscanfください。

scanf( "%s", firstname );
scanf( "%s", lastname );

最後にもう 1 つ -scanfは危険な機能であり、使用しないでください。

于 2013-10-21T05:29:00.837 に答える
0
#include <stdio.h>
#include<string.h>
main() {
char firstname [256];
char lastname [256];
char str [50];
printf("What's your first name?: ");
scanf("%s",firstname);
printf("What is your last name? ");
scanf("%s",lastname);
str = strcpy(str, firstname[0]);
str = strcpy(str,lastname[1]);
printf("\nYour school.edu e-mail address is: %s2@school.edu",str);
return 0;
}
于 2013-10-21T05:56:51.697 に答える
0

変数firstnameにイニシャルのみを格納する必要があると思います。そのため、名は文字のように機能します。

firstname[1] = '\0'; //mark the end of string on second character
printf("\nYour school.edu e-mail address is: %s%s2@school.edu",firstname,lastname);
于 2013-10-21T06:00:05.947 に答える
0

予想される入力を仮定します。

fname = Batman
lname = Joker

期待される出力:

Your school.edu e-mail address is: BJBker2@school.edu

これを試して:

void main( void )
{
char fname = 0;
char lname[256] = {0};

printf("Enter firstname\n");
scanf("%c", &fname);

printf("Enter lastname\n");
scanf("%s", lname);

lname[1] = fname;

printf("Your school.edu e-mail address is: %c%s2@school.edu\n", fname, lname);

return;
}
于 2013-10-21T07:48:58.897 に答える
0

C文字列から最初の文字をコピー

char extractedchar = '0';
extractedchar=myoldstring[0];

注 : char '0' は、後でアプリケーションでテストするためのものです。

于 2018-08-19T18:16:30.203 に答える