Bài mẫu ( tham khảo )

Trần Nguyên Vũ  •  2 tháng trước


#include <stdio.h>
#include <string.h>
#include <ctype.h> // Thư viện dùng để nhận biết ký tự và số trong chuỗi
#define MAX 100000

int main()
{
    char mahoa[MAX], ketqua[MAX];
    fgets(mahoa, sizeof(mahoa), stdin);
    
    int lenmahoa = strlen(mahoa);
	
    int tong = 0, lenketqua = 0;
    
    for (int i = 0; i < lenmahoa; i++)
    {
        if (isalpha(mahoa[i])) // isalpha nhận biết ký tự trong chuỗi
        {
            ketqua[lenketqua] = mahoa[i]; // thêm vào kết quả
            lenketqua++;
        }
        else if (isdigit(mahoa[i])) // isdigit nhận biết chữ số trong chuỗi
        {
            tong += mahoa[i] - '0'; // - '0' bởi vì số trong ký tự tuân thủ bảng mã ascii ví dụ '1' thì trong ascii là 49 , nếu + '1' vào tổng thì nó sẽ + 49 vào thay vì 1. Giải pháp ta sẽ - '0' với '0' là 48 thì 49-48 = 1 làm tương tự cho '1' đến '9' ( luôn ghi nhớ nhé ).
        }
    }
    
    ketqua[lenketqua] = '\0';
    
    char tongchuoi[MAX]; // tạo 1 chuỗi chứa tổng
    sprintf(tongchuoi, "%d", tong); // chuyển tổng thành ký tự tuân thử ascii
    strcat(ketqua, tongchuoi); // ghép tongchuoi vào ketqua
    
    printf("%s\n", ketqua); // in ra kết quả cuối cùng
    
    return 0;
}


Bình luận: