段错误(吐核)有关整理字符串数组中得整数!
#include<stdio.h>
#include<ctype.h>
#include<string.h>
int main()
{
int i;
int j,k,n,el,sum;
char *s;
int a[100]={0};
scanf("%s",&s);
j=sum=n=0;
el=1;
char *p=s;
while(*s !='\0')
{
p=s;
while(*p>='0' && *p <= '9')
{
j++;
p++;
}
if(j>0)
{
for(j=j-1;j>=0;j--)
{
sum+=((*(s+j)-48)*el);
el=el*10;
}
a[n]=sum;
printf("%d\n",a[n]);
n++;
j=0;
sum=0;
el=1;
}
s=p;
if(*s !='\0')
{
s++;
}
}
for(i=0;i<n;i++)
{
printf("%d",*(a+i));
}
printf("the number of integers is %d\n",n);
return 0;
}
#include<ctype.h>
#include<string.h>
int main()
{
int i;
int j,k,n,el,sum;
char *s;
int a[100]={0};
scanf("%s",&s);
j=sum=n=0;
el=1;
char *p=s;
while(*s !='\0')
{
p=s;
while(*p>='0' && *p <= '9')
{
j++;
p++;
}
if(j>0)
{
for(j=j-1;j>=0;j--)
{
sum+=((*(s+j)-48)*el);
el=el*10;
}
a[n]=sum;
printf("%d\n",a[n]);
n++;
j=0;
sum=0;
el=1;
}
s=p;
if(*s !='\0')
{
s++;
}
}
for(i=0;i<n;i++)
{
printf("%d",*(a+i));
}
printf("the number of integers is %d\n",n);
return 0;
}
...全文
相关推荐
linux中利用tacktrace信息解决段错误
"在Linux环境中,利用backtrace信息可以有效地解决段错误问题。段错误通常是由于程序尝试访问非法内存地址导致的,这可能是由于数组越界、空指针解引用或者内存分配失败等原因引起的。在高级编程语
Linux下发生段错误时如何产生core文件
在上述例子中,一个简单的C程序被用来演示段错误的发生。程序尝试修改字符串常量的值,这是不允许的,导致段错误。在没有设置core dump大小限制的情况下,运行程序不会生成core文件。
指针与数组基础整理
这是因为它们存储的位置不同:字符数组存储在全局数据区或栈区,可以读写;字符串常量存储在常量区,只能读取。字符串常量的修改尝试会导致运行时错误,例如段错误。6.
段错误总结
段错误的原因段错误的原因有很多,常见的有以下几种:* 访问不允许访问的内存区域* 以错误的类型访问内存区域* 无效的指针操作* 内存泄露* 栈溢出段错误的避免方法为了避免段错误,我们可以采取以下措施:*
linux c段错误处理
- **数组越界**:超出数组的边界进行访问。- **未初始化的变量**:使用未初始化的局部变量或静态变量。#### 3.


