01/10/2018, 15:20

Lỗi 'L"String is not null terminated" &&0' khi debug là do đâu?

Code: Bài toán đổi cơ số, cơ số tối đa là 16.

    #include "stdafx.h"
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <math.h>

    int main()
    {
    	char num[20], ch[20], G[20];
	unsigned int i, fb, tb, len, sd, t[20], A = 0;
	//Nhập dữ liệu
	printf("Enter a number: ");
	gets_s(num);
	printf("Base from: ");
	scanf_s("%u", &fb);
	printf("Base to: ");
	scanf_s("%u", &tb);
	//Tách thành số thành phần
	len = strlen(num);
	for (i = 0; i < len; i++)
	{
		switch (num[i])
		{
		case 'A': t[i] = 10; break;
		case 'B': t[i] = 11; break;
		case 'C': t[i] = 12; break;
		case 'D': t[i] = 13; break;
		case 'E': t[i] = 14; break;
		case 'F': t[i] = 15; break;
		default:
			ch[0] = num[i];
			t[i] = atoi(ch);
		}
	}
	//Tính num ở cơ số 10 (A)
	for (i = 0; i < len; i++)
		A = A + t[i] * pow(fb, len - (i + 1));
	printf("
A = %u
", A);
	//Chuyển A sang cơ số đích
	while (A != 0)
	{
		sd = A % tb;
		switch (sd)
		{
		case 10: sprintf_s(ch, "%c", 'A'); break;
		case 11: sprintf_s(ch, "%c", 'B'); break;
		case 12: sprintf_s(ch, "%c", 'C'); break;
		case 13: sprintf_s(ch, "%c", 'D'); break;
		case 14: sprintf_s(ch, "%c", 'E'); break;
		case 15: sprintf_s(ch, "%c", 'F'); break;
		default: sprintf_s(ch, "%u", sd);
		}
		strcat_s(G, ch);
		A = A / tb;
	}
	_strrev(G);
	printf("%s|%u = %s|%u

", num, fb, G, tb);
	system("pause");
}
Bài liên quan
0