c - 我怎样才能让数组从用户那里读取?

标签 c

我想要的只是数组 foo 的用户输入,并从中向左和向右打印 op。

我尝试添加以下代码,但无法得到相同的结果。

我没有写 char foo [29] = "1021+2551";,而是写了:

int i;

printf("Enter the number and opperator");

for(i=0; i<1; i++)      // I used i < 1 b/c I want to get only one line input

{

scanf("%c", foo[i]);

}


void main(){

    int index;
    char foo[29] = "1021+2551";
    int len = strlen(foo);

    for (int i=0; i < len; i++)
    {
    if(foo[i] == '+' || foo[i] == '-' || foo[i] == '*' || foo[i] == '/' || foo[i] == '%'){
       char op = foo[i];
       printf("%c", op);
       index = i;
        }
    }
    char left;
    for(int j=0; j < index; j++){
       left = printf("%c",foo[j]);
    }
    char right;
    for(int k=index + 1; k < len; k++){
       right = printf("%c",foo[k]);
    }
}

如果我在用户输入中输入 100+200,结果应该是

+100200

最佳答案

像这样简单快捷的东西:)

    int main(){

    int i;
    char foo[29];

    printf("Enter the number and opperator\n");
    fgets(foo, 29 , stdin);

    int index;
    int len = strlen(foo);

    for (int i=0; i < len; i++)
    {
    if(foo[i] == '+' || foo[i] == '-' || foo[i] == '*' || foo[i] == '/' || foo[i] == '%'){
       char op = foo[i];
       printf("%c", op);
       index = i;
        }
    } printf(" ");
    char left;
    for(int j=0; j < index; j++){
       left = printf("%c",foo[j]);
    } printf(" ");
    char right;
    for(int k=index + 1; k < len; k++){
       right = printf("%c",foo[k]);
    }
    return 0;
}

关于c - 我怎样才能让数组从用户那里读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54335066/

相关文章:

c - 如何在 Linux 上显示文件的最后修改时间

c - Mac OS X 体系结构和命令行

'outchar' 的冲突类型

c - 解释使用 xor 在数组中查找两个不重复的整数

c - 我需要有关 C 语言中此 void 函数的帮助。?

c - 检查未知单词是否出现在所有 3 个不同长度的字符串中的函数

c - 带有 fseek 的 open_memstream 以用零结束填充缓冲区

ios - iPhone 上的 dyld API - 奇怪的输出

C 输入和输出 - 我们可以使其自适应吗?

c - 根据用户输入从链表中删除节点