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: