मैंने सी में स्ट्रिंग को रिवर्स करने के लिए निम्न कोड लिखा है। कोड ठीक से काम करता प्रतीत होता है और इसलिए मैं उलझन में हूं। क्या किसी को पता है कि यहां कोई त्रुटि क्यों नहीं है? मैं लूप के लिए सीमाओं या अनंत लूप से बाहर की सरणी की अपेक्षा कर रहा था, लेकिन ऐसा लगता है कि यह लूप टूट जाता है इससे पहले कि यह नकारात्मक मानों में हो।चार ऐरे - क्यों लूप अनंत नहीं है?
#include <stdio.h>
#include <string.h>
void reverse(char* str);
void reverse(char* str)
{
size_t len = strlen(str);
for(int i = (int)len-1; i<=len; i--)
{
printf("%c", str[i]);
}
}
int main (int argc, const char * argv[])
{
char string[] = {'h', 'e', 'l', 'l', 'o', '\0'};
reverse(string);
return 0;
}
'उत्पादन के लिए (int i = (int) लेन-1; i> = 0; मैं -)' क्या तार्किक रूप से सही है। आपके पास जो था, वह सच होगा जबकि 'i'' len' से कम है, जो हमेशा सत्य होता है। –
हस्ताक्षरित/हस्ताक्षरित तुलना मूर्खतापूर्ण है। http://stackoverflow.com/a/5416498/489590 –
@ ऐसा करें? जो उसके सवाल का जवाब नहीं देता है, यह उसके लिए क्यों काम कर रहा है, हम सभी जानते हैं कि यह ठीक से कैसे किया जाता है – Ulterior