मैं सी में एक स्ट्रिंग से एक चरित्र को हटाने का प्रयास कर रहा हूं। मेरे कोड के साथ समस्या यह है कि यह स्ट्रिंग से वर्ण के पहले उदाहरण को हटा देता है लेकिन स्ट्रिंग में उस चरित्र के बाद भी सबकुछ मिटा देता है। उदाहरण के लिए, को दूर करने 'हैलो' प्रिंट 'वह' से 'एल' के बजाय 'Heo'सी में स्ट्रिंग से दिए गए वर्ण की सभी घटनाओं को कैसे हटाएं?
int i;
char str1[30] = "Hello", *ptr1, c = 'l';
ptr1 = str1;
for (i=0; i<strlen(str1); i++)
{
if (*ptr1 == c) *ptr1 = 0;
printf("%c\n", *ptr1);
ptr1++;
}
मैं इस के लिए संकेत का उपयोग करने की आवश्यकता है और यह संभव के रूप में सरल रखने के लिए के बाद से मैं अभी शुरुआत कर रहा हूँ चाहते हैं की तुलना में सी में धन्यवाद
संकेत: हटाने के दौरान, आप हटाए गए लोगों को कवर करने के लिए अन्य अक्षरों को स्थानांतरित करना चाहते हैं। '* ptr1 = 0; 'ऐसा करने का तरीका नहीं है। –
आप प्रत्येक char की अनुक्रमणिका को संबोधित करने के लिए एक/लूप का भी उपयोग कर रहे हैं, लेकिन आप कभी भी वास्तविक सूचकांक (i का मान) –
याद रखने की एक और बात नहीं है, सीएस में, तारों को निरस्त कर दिया गया है। –