ปัญหา
เขียนฟังก์ชันผู้ใช้เพื่อลบ N – อักขระจากตำแหน่งในสตริงที่กำหนด ที่นี่ ผู้ใช้กำหนดสตริงขณะใช้งานจริง
วิธีแก้ปัญหา
วิธีแก้ปัญหาในการลบอักขระ n ตัวในสตริงที่กำหนดมีดังนี้ -
อัลกอริทึม
อ้างถึงอัลกอริทึมเพื่อลบอักขระ n ตัวในสตริงที่กำหนด
ขั้นตอนที่ 1 − เริ่มต้น
ขั้นตอนที่ 2 − อ่านสตริงที่รันไทม์
ขั้นตอนที่ 3 − อ่านตำแหน่งจากตำแหน่งที่เราจำเป็นต้องลบอักขระ
ขั้นตอนที่ 4 − อ่าน n จำนวนตัวอักษรที่จะลบออกจากตำแหน่งนั้น
ขั้นตอนที่ 5 − เรียกใช้ฟังก์ชัน deletestr(str,p,n) ข้ามไปยังขั้นตอนที่ 7
ขั้นตอนที่ 6 − หยุด
ขั้นตอนที่ 7 − เรียกว่าฟังก์ชัน deletestr(str,p,n)
<ก่อน>1. สำหรับ i =0 , j =0 ถึงความยาว[str]2 ทำ if i =p-13 ผม =ผม + n4. str[j] =str[i]5. str[j] =NULL6. พิมพ์ strตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C เพื่อ ลบอักขระ n ตัวในสตริงที่กำหนด −
#include#include // ต้นแบบของ functionvoid del_str(ถ่าน [],int, int);main(){ int n,p; ถ่าน str[30]; printf("\n ใส่สตริง:"); ได้รับ(str); ฟลัช (stdin); printf("\n ป้อนตำแหน่งที่ต้องการลบอักขระ:"); scanf("%d",&p); printf("\n ใส่จำนวนอักขระที่จะลบ:"); scanf("%d",&n); del_str(str,p,n);}//ฟังก์ชัน callvoid del_str(ถ่าน str[],int p, int n){ int i,j; สำหรับ(i=0,j=0;str[i]!='\0';i++,j++){ if(i==(p-1)){ i=i+n; } str[j]=str[i]; } str[j]='\0'; puts(" สตริงหลังการลบอักขระ:"); ทำให้(str);}
ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
ป้อนสตริง:บทช่วยสอน การเขียนโปรแกรม Point Cป้อนตำแหน่งจากตำแหน่งที่ต้องการลบอักขระ:10ป้อนจำนวนอักขระที่จะลบ:6สตริงหลังการลบอักขระ:บทช่วยสอนการเขียนโปรแกรม C