#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_LENGTH 50
void textToASCII(char text[]) {
for (int i
= 0; i
< strlen(text
); i
++) { printf(","); // ใส่จุลภาคระหว่างรหัส ASCII }
}
}
void asciiToText(char asciiInput[]) {
char *token
= strtok(asciiInput
, ","); while (token != NULL) {
int asciiCode
= atoi(token
); // แปลงรหัส ASCII จากข้อความเป็นจำนวนเต็ม }
}
int main() {
int choice;
char input[MAX_LENGTH + 1]; // รองรับข้อความสูงสุด 50 ตัวอักษร
printf("เลือกโหมด:\n1. แปลงข้อความเป็น ASCII\n2. แปลง ASCII เป็นข้อความ\n"); printf("กรุณาเลือกโหมด (1 หรือ 2): "); getchar(); // เคลียร์บัฟเฟอร์หลังการอ่านตัวเลข
if (choice == 1) {
printf("กรุณาป้อนข้อความ (ไม่เกิน 50 ตัวอักษร): "); fgets(input
, sizeof(input
), stdin
); input
[strcspn(input
, "\n")] = '\0'; // ลบ newline ออกจากข้อความ if (strlen(input
) > MAX_LENGTH
) { printf("ข้อความเกินขนาดที่กำหนด!\n"); } else {
textToASCII(input);
}
} else if (choice == 2) {
printf("กรุณาป้อนรหัส ASCII (คั่นด้วยเครื่องหมายจุลภาค): "); fgets(input
, sizeof(input
), stdin
); input
[strcspn(input
, "\n")] = '\0'; // ลบ newline ออกจากข้อความ asciiToText(input);
} else {
printf("โหมดที่เลือกไม่ถูกต้อง!\n"); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgoKI2RlZmluZSBNQVhfTEVOR1RIIDUwCgp2b2lkIHRleHRUb0FTQ0lJKGNoYXIgdGV4dFtdKSB7CiAgICBwcmludGYoIuC4o+C4q+C4seC4qiBBU0NJSTogIik7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHN0cmxlbih0ZXh0KTsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCIlZCIsIHRleHRbaV0pOwogICAgICAgIGlmIChpIDwgc3RybGVuKHRleHQpIC0gMSkgewogICAgICAgICAgICBwcmludGYoIiwiKTsgLy8g4LmD4Liq4LmI4LiI4Li44Lil4Lig4Liy4LiE4Lij4Liw4Lir4Lin4LmI4Liy4LiH4Lij4Lir4Lix4LiqIEFTQ0lJCiAgICAgICAgfQogICAgfQogICAgcHJpbnRmKCJcbiIpOwp9Cgp2b2lkIGFzY2lpVG9UZXh0KGNoYXIgYXNjaWlJbnB1dFtdKSB7CiAgICBjaGFyICp0b2tlbiA9IHN0cnRvayhhc2NpaUlucHV0LCAiLCIpOwogICAgcHJpbnRmKCLguILguYnguK3guITguKfguLLguKHguJfguLXguYjguYTguJTguYk6ICIpOwogICAgd2hpbGUgKHRva2VuICE9IE5VTEwpIHsKICAgICAgICBpbnQgYXNjaWlDb2RlID0gYXRvaSh0b2tlbik7IC8vIOC5geC4m+C4peC4h+C4o+C4q+C4seC4qiBBU0NJSSDguIjguLLguIHguILguYnguK3guITguKfguLLguKHguYDguJvguYfguJnguIjguLPguJnguKfguJnguYDguJXguYfguKEKICAgICAgICBwcmludGYoIiVjIiwgYXNjaWlDb2RlKTsKICAgICAgICB0b2tlbiA9IHN0cnRvayhOVUxMLCAiLCIpOwogICAgfQogICAgcHJpbnRmKCJcbiIpOwp9CgppbnQgbWFpbigpIHsKICAgIGludCBjaG9pY2U7CiAgICBjaGFyIGlucHV0W01BWF9MRU5HVEggKyAxXTsgLy8g4Lij4Lit4LiH4Lij4Lix4Lia4LiC4LmJ4Lit4LiE4Lin4Liy4Lih4Liq4Li54LiH4Liq4Li44LiUIDUwIOC4leC4seC4p+C4reC4seC4geC4qeC4owoKICAgIHByaW50Zigi4LmA4Lil4Li34Lit4LiB4LmC4Lir4Lih4LiUOlxuMS4g4LmB4Lib4Lil4LiH4LiC4LmJ4Lit4LiE4Lin4Liy4Lih4LmA4Lib4LmH4LiZIEFTQ0lJXG4yLiDguYHguJvguKXguIcgQVNDSUkg4LmA4Lib4LmH4LiZ4LiC4LmJ4Lit4LiE4Lin4Liy4LihXG4iKTsKICAgIHByaW50Zigi4LiB4Lij4Li44LiT4Liy4LmA4Lil4Li34Lit4LiB4LmC4Lir4Lih4LiUICgxIOC4q+C4o+C4t+C4rSAyKTogIik7CiAgICBzY2FuZigiJWQiLCAmY2hvaWNlKTsKICAgIGdldGNoYXIoKTsgLy8g4LmA4LiE4Lil4Li14Lii4Lij4LmM4Lia4Lix4Lif4LmA4Lif4Lit4Lij4LmM4Lir4Lil4Lix4LiH4LiB4Liy4Lij4Lit4LmI4Liy4LiZ4LiV4Lix4Lin4LmA4Lil4LiCCgogICAgaWYgKGNob2ljZSA9PSAxKSB7CiAgICAgICAgcHJpbnRmKCLguIHguKPguLjguJPguLLguJvguYnguK3guJnguILguYnguK3guITguKfguLLguKEgKOC5hOC4oeC5iOC5gOC4geC4tOC4mSA1MCDguJXguLHguKfguK3guLHguIHguKnguKMpOiAiKTsKICAgICAgICBmZ2V0cyhpbnB1dCwgc2l6ZW9mKGlucHV0KSwgc3RkaW4pOwogICAgICAgIGlucHV0W3N0cmNzcG4oaW5wdXQsICJcbiIpXSA9ICdcMCc7IC8vIOC4peC4miBuZXdsaW5lIOC4reC4reC4geC4iOC4suC4geC4guC5ieC4reC4hOC4p+C4suC4oQogICAgICAgIGlmIChzdHJsZW4oaW5wdXQpID4gTUFYX0xFTkdUSCkgewogICAgICAgICAgICBwcmludGYoIuC4guC5ieC4reC4hOC4p+C4suC4oeC5gOC4geC4tOC4meC4guC4meC4suC4lOC4l+C4teC5iOC4geC4s+C4q+C4meC4lCFcbiIpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRleHRUb0FTQ0lJKGlucHV0KTsKICAgICAgICB9CiAgICB9IGVsc2UgaWYgKGNob2ljZSA9PSAyKSB7CiAgICAgICAgcHJpbnRmKCLguIHguKPguLjguJPguLLguJvguYnguK3guJnguKPguKvguLHguKogQVNDSUkgKOC4hOC4seC5iOC4meC4lOC5ieC4p+C4ouC5gOC4hOC4o+C4t+C5iOC4reC4h+C4q+C4oeC4suC4ouC4iOC4uOC4peC4oOC4suC4hCk6ICIpOwogICAgICAgIGZnZXRzKGlucHV0LCBzaXplb2YoaW5wdXQpLCBzdGRpbik7CiAgICAgICAgaW5wdXRbc3RyY3NwbihpbnB1dCwgIlxuIildID0gJ1wwJzsgLy8g4Lil4LiaIG5ld2xpbmUg4Lit4Lit4LiB4LiI4Liy4LiB4LiC4LmJ4Lit4LiE4Lin4Liy4LihCiAgICAgICAgYXNjaWlUb1RleHQoaW5wdXQpOwogICAgfSBlbHNlIHsKICAgICAgICBwcmludGYoIuC5guC4q+C4oeC4lOC4l+C4teC5iOC5gOC4peC4t+C4reC4geC5hOC4oeC5iOC4luC4ueC4geC4leC5ieC4reC4hyFcbiIpOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==