C 在数组中存储整数和字符

C 在数组中存储整数和字符,c,arrays,C,Arrays,目标:-打印A3B5,如下所示。。 aaabbbb 我通过以下代码实现了这一点:- #include <stdio.h> #include <conio.h> void main(){ char char1[2],*ptr_char,c; int number[2],*ptr_number,i,j=0,k=0; ptr_char = char1; ptr_number = number; printf("Enter cha

目标:-打印A3B5,如下所示。。 aaabbbb

我通过以下代码实现了这一点:-

#include <stdio.h>
#include <conio.h>

void main(){

    char char1[2],*ptr_char,c;
    int  number[2],*ptr_number,i,j=0,k=0;

    ptr_char = char1;
    ptr_number = number;

    printf("Enter character string\n");
    for(i=0;i<2;i++)
        scanf("%c",&char1[i]);

    printf("Enter number array\n");
    for(i=0;i<2;i++)
        scanf("%d",&number[i]);

    for(i=0;i<ptr_number[j];i++)
        printf("%c",ptr_char[k]);

    j++;
    k++;

    for(i=0;i<ptr_number[j];i++)
        printf("%c",ptr_char[k]);

    getch();
}

///////////////////////////////////////////////////////////
#包括
#包括
void main(){
char char1[2],*ptr_char,c;
整数[2],*ptr_数,i,j=0,k=0;
ptr_char=char1;
ptr_编号=编号;
printf(“输入字符串\n”);
对于(i=0;i你可以说:

char csrc[]= "A3B5" ;
这里的问题是3和5不是数字,它们是字符。因此您必须从“3”转换到3。您有几个选项,包括
sscanf
atoi
。正如其他人所建议的,一次读入整个字符串,它将位于
char
数组中,然后将其分解为所需的单独部分。

检查此代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
        int count = 0, i = 0;
        char temp = 0;
        char ip[16] = {0};
        char filter[8] = {0};
        int num[8] = {0};
        printf("Enter input :\t");
        scanf("%s", ip);
        for (count = 0, i =0; count < strlen(ip); count++, i++)
        {
                filter[i] = ip[count];            //take out the character to print
                count++;
                temp = ip[count];                 //read the number of print iteration as a character
                num[i] = atoi(&temp);             // convert "n" [charater] to n [int]
        }
        for (count = 0; count < strlen(ip)/2 ; count++)
        {                                             //print loop
                for (i = 0; i < num[count]; i++)
                        printf("%c\t", filter[count]);
                printf("\n\n");
        }
        return 0;
}

为什么不执行
scanf(“%s”,string);
其中
string
charstring[5]
之后,您可以分析输入字符串中的数字和字符。您可以添加一些注释或解释?@ldrumm什么样的注释?我的意思是,仅仅发布代码可能无法帮助OP理解您发布代码的原因。添加源代码注释或解释可能有助于澄清他们的推理和解释反过来,自己在解决这样的问题方面会变得更好。@ldrumm当然。会的。@Jack13很高兴听到这一点。仅供参考,这是一个没有错误案例检查的示例代码。如果您想要一个健壮的代码,请添加对复杂场景的检查。您可以使用
isalpha()
isdigit()
来完成这一任务。
[sourav@localhost test]$ ./a.out 
Enter input :   S2G5
S   S   
G   G   G   G   G   
[sourav@localhost test]$