尝试为字符串分配一组字符

时间:2019-01-02 15:29:50

标签: c string char

我试图将特定顺序的一组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();
}          

1 个答案:

答案 0 :(得分:0)

您应将scanf()的地址传递给scanf("%d %c",&choc_num, &choc_type); ^

C

'\0'中,字符串实际上是由空字符String终止的一维字符数组,而您for数组中添加空字符填充后。在外部String[F] = '\0'; 循环之后,您应该执行以下操作:

scanf()

您的代码有很多改进的地方,例如,您应该对用户提供的输入进行一些验证,检查awk ' /foo/ { prtInfo() } END { prtInfo() } function prtInfo() { print "foo or END" } ' 的返回值,等等。