C 将数字存储为字符串

C 将数字存储为字符串,c,C,我是编程新手,我面临的问题是,程序必须要求用户输入他想要的数字,并将其存储在变量中,然后打印所有数字,直到找到0为止。 我唯一能想到的是将scanf()存储在一个char*中,然后尝试打印所有数字,直到找到一个0,但我最终发现了一个分段错误。。。 这是我的密码: #include <stdio.h> #include <stdlib.h> #include <string.h> int main (int argc, char *argv[]){

我是编程新手,我面临的问题是,程序必须要求用户输入他想要的数字,并将其存储在变量中,然后打印所有数字,直到找到0为止。 我唯一能想到的是将scanf()存储在一个char*中,然后尝试打印所有数字,直到找到一个0,但我最终发现了一个分段错误。。。 这是我的密码:

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


int main (int argc, char *argv[]){

    char entry[50];

    printf("Enter a number !\n");
    scanf("%c", &entry);    // maybe %d or %s ?
    printf("\n");
    int i=0;
    while (entry[i] != 0){

        if (entry[i] !=0){
        printf("%c", entry[i] );    // maybe %d with, (int)entry[i] ?
        }
        i++;
    }
    return 0;
}


#包括
#包括
#包括
int main(int argc,char*argv[]){
字符输入[50];
printf(“输入一个数字!\n”);
scanf(“%c”,&entry);//可能是%d或%s?
printf(“\n”);
int i=0;
while(条目[i]!=0){
如果(条目[i]!=0){
printf(“%c”,条目[i]);//可能是%d和(int)条目[i]?
}
i++;
}
返回0;
}

编辑:它现在可以工作了,必须修复
(条目[i]!=0)
-->
(条目[i]!=“0”)
和scanf的
%c
-->
%s
您可以将其作为字符串(%s)读取并进行比较,直到当前字符为字符0:

while (entry[i] != '0') {
在c语言中,字符位于单引号之间

与整数48相比,可以得到相同的结果,因为48是0的ASCII码,这是字符在内部的存储方式,但与“0”相比,它更可读,更容易理解


如果在while中不需要,因为它将始终为真。

是打印所有数字直到零,还是打印所有数字直到零?您能举例说明输入和输出应该是什么吗?您需要使用
%s
来读取字符串,
%c
表示单个字符。
如果(条目[i]!=0){
-->
..!=“0”