30/09/2018, 19:41

Lỗi Segment fault

Mình nghĩ mãi ko biết code bị lỗi ở đâu, mọi người giải thích giúp mình được không?

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

int k=0;

int main()
{
	char s[200],ch;
	strcpy(s,"4C7565142394");
	//scanf("%s",s);
	int i=0,l,len=strlen(s),x;
	//printf("%c",65);
	//printf("%d",len);
	
//
	for(i=0;i<len;i++)
	{
		x=(int)s[i];
		if(i%2==0) 
		{	k=0; l=16;}
		else l=1;
		if( (x >= 65) && (x <= 70) )
		{
			switch(x)
			{
				case 65:
					k+=l*10;
					break;
				case 66:
					k+=l*11;
					break;
				case 67:
					k+=l*12;
					break;
				case 68:
					k+=l*13;
					break;
				case 69:
					k+=l*14;
					break;
				case 70:
					k+=l*15;
					break;
				default: 
					break;
			}
		}
		else k=k+atoi(s[i])*l;
		printf("zzz");
		if(i%2!=0) printf("%c",k);
	}
//
}
Gió viết 21:48 ngày 30/09/2018

Hàm a toi tham số phải là chuôi

lahata viết 21:55 ngày 30/09/2018

Core dump at function atoi

else{
    char s_t[2];
    s_t[0] = s[i];
    s_t[1] = '\0';
    k = k + atoi (s_t) * l;
 }
Toan Tran viết 21:43 ngày 30/09/2018

Cảm ơn 2 bạn nhiều :((
Bình thường mình tự viết hàm đổi chữ thành số, hôm qua thấy lười, dùng atoi luôn mà không đọc kĩ trong library C. Loay hoay mãi :))

Bài liên quan
0