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
回车获取累加结果: char* s=NULL;
不分配内存?
char s 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]