18135437048 发表于 2022-4-16 13:31:17

c/c++

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
        char* arr=NULL;
        char str;
        char c=' ';
        printf("please input num:\n");
        gets(str);//1   3   5
        int i=0;
        int sum=0;//
        for(;i<strlen(str);i++){
                char* s=NULL;
                if(str!=' '){
                        sprintf(s,"%s%c",s,arr);//问题行    报中断
                }else{
                        sum+=atoi(s);
                        s=NULL;
                }
        }
        printf("%d",sum);
        getchar();
        getchar();
        return 0;
}
console input:1    3    4    55
回车获取累加结果:

ba21 发表于 2022-4-16 13:49:43

char* s=NULL;
不分配内存?
char s

zzxhh628 发表于 2022-4-16 14:43:50

char* s是需要自己分配内存空间的,用malloc()。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main()
{
    char* arr=malloc(sizeof(char)*1024);
    char str;
    char c=' ';
    printf("please input num:\n");
    gets(str);//1 3 5
    int i=0;
    int sum=0;
    for(; i<strlen(str); i++)
    {
      char* s=malloc(sizeof(char)*1024);
      if(str!=' ')
      {
            sprintf(s,"%s%c",s,arr);//问题行报中断
      }
      else
      {
            sum+=atoi(s);
            s=NULL;
      }
    }
    printf("%d",sum);
    getchar();
    return 0;
}
页: [1]
查看完整版本: c/c++