gpt4 book ai didi

c - 尝试将一组字符分配给字符串

转载 作者:行者123 更新时间:2023-11-30 19:28:23 26 4
gpt4 key购买 nike

我试图将一组 A 和 B 按特定顺序存储到一个字符串中,但失败了。

char String[100];
char choc_type;
int F=0,L,i,j,choc_num,N; //F=First, L=Last
scanf("%d",&N);
for(i=0;i<N;i++)
{ //choc_type is 'A' or 'B' and choc_num is no.of A's or B's
scanf("%d %c",&choc_num,&choc_type);
L=F+choc_num;
for(j=F;j<L;j++)
{
if(choc_type=='A')
String[j]='A'; //is this a right way to assign character
else if(choc_type=='B')
String[j]='B';
}
F=L;
L=L+choc_num;
}
printf("%s",String);
getch();
}

最佳答案

您应该将 choc_type 的地址传递给 scanf():

scanf("%d %c",&choc_num, &choc_type);
^

C中,字符串实际上是一维字符数组,以空字符'\0'结尾,并且您添加填充后 String 数组中存在空字符。在外部 for 循环之后,您应该执行以下操作:

String[F] = '\0';

您的代码还有改进的余地,例如您应该对用户给出的输入进行一些验证,检查 scanf() 返回值等。

关于c - 尝试将一组字符分配给字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54009000/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com