में विलय कर रहे हैं किसी कारण से, मेरा दूसरा वर्ण सरणी (var2) पहले (var1) के साथ विलीन हो जाती है। यहाँ मेरी कोड है:मेरे चरित्र सरणी सी
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main()
{
char var1[5] = "Hello";
char var2[5] = "World";
printf("This program can write:\t%s\t%s\n", var1, var2);
getch();
return 0;
}
यह संकलन के बाद
, मैं निम्नलिखित प्रिंट मिला:
इस कार्यक्रम लिख सकते हैं: हैलो WorldHello
जब मैं printf("This program can write:\t%s\n", var2);
मैं करने के लिए कोड बदल निम्नलिखित प्रिंट प्राप्त हुआ:
यह प्रोग्राम लिख सकता है: वर्ल्डहेल्लो
तो यह स्पष्ट है कि var1 var2 के साथ विलय कर रहा है।
क्या यह किसी प्रकार का कंपाइलर बग है। यदि हां, तो मैं इसे कैसे ठीक कर सकता हूं? मैंने MINGW को पुनर्स्थापित करने का प्रयास किया, लेकिन मुझे अभी भी वही परिणाम मिल रहे हैं।
धन्यवाद एक बहुत
के बीच का अंतर देखें। कंपाइलर को इसे 'char var1 [] = "हैलो" के साथ 6 तक आकार दें;' जिसमें पिछला शून्य चरित्र शामिल है। – chux
अधिकांश कंप्यूटर्स को इसके बारे में चेतावनी देना चाहिए था, बीटीडब्ल्यू। – Dummy00001
आपके सरणी को अंत में जोड़ने के लिए अंत में एक और वर्ण की आवश्यकता होती है। printf नल चरित्र का उपयोग कर स्ट्रिंग के अंत की तलाश करेगा, जिसमें स्ट्रिंग "हैलो" नहीं है। 'Var1' को आकार 6 के रूप में बदलने का प्रयास करें और "हैलो" को "हैलो \ 0" में बदलें। फिर वही करें 'var2' – Gophyr