Squeeze(s1, s2) หรือ squeeze(char[], char[]) เป็นฟังก์ชันที่ผู้ใช้นิยามเอง ใช้สำหรับลบตัวอักษรที่ซ้ำหรือเหมือนกันในสองสตริง
ปัญหา
วิธีลบตัวอักษรที่ซ้ำในสองสตริง โดยใช้ฟังก์ชัน Squeeze ในภาษา C?
วิธีแก้
ในโปรแกรมนี้ ผู้ใช้ป้อนสตริง 2 ตัวในคอนโซล และเขียนโค้ดแสดงสตริงแรก โดยไม่นับตัวอักษรที่ซ้ำในสตริงที่สอง
ตัวอย่าง
โปรแกรม C ที่สาธิตการทำงานของฟังก์ชัน Squeeze:
#include <stdio.h>
void squeeze(char string1[], char string2[]); // ประกาศโพรโทไทป์
int main() {
char string1[50];
char string2[30];
printf("enter the string1:");
scanf("%s", string1); // อ่าน string1 จากคีย์บอร์ด
printf("enter the string2:");
scanf("%s", string2); // อ่าน string2 จากคีย์บอร์ด
squeeze(string1, string2); // เรียกฟังก์ชัน squeeze
printf("Final string is:%s\n", string1);
return 0;
}
void squeeze(char string1[], char string2[]) {
int i, j, k;
for(i = k = 0; string1[i] != '\0'; i++) {
for(j = 0; string2[j] != '\0' && string2[j] != string1[i]; j++)
;
if(string2[j] == '\0')
string1[k++] = string1[i];
}
string1[k] = '\0';
}ผลลัพธ์
ผลลัพธ์ระบุด้านล่าง:
Enter the string1 : Tutorial Enter the string2 : ut Final string : Torial