我将用户输入保存为char eingabe []中的数组 与我即时计算使用的数组的索引。
然后我要在palindrom中复制eingabe的反转值,然后将它们两个都打印出来以获得palindrom。
我的i和j正确计数,但是我没有得到palindrom的输出。
希望您能帮助我。
charArray
答案 0 :(得分:5)
有时添加printf以查看发生了什么非常有用。例如,如果我添加:
do {
printf("palindrom[%d] = eingabe[%d]\n", j, i);
palindrom[j] = eingabe[i];
然后输出为:
abcde
palindrom[0] = eingabe[5]
palindrom[1] = eingabe[4]
palindrom[2] = eingabe[3]
palindrom[3] = eingabe[2]
palindrom[4] = eingabe[1]
eingabe: "abcde"
palindrom: ""
问题立即显而易见:数组索引被关闭1。由于palindrom([0])的第一个字符被设置为eingabe([5])的最后一个字符,即“ \ 0”,因此C将其视为空字符串。
通过将--i移至循环顶部可以很容易地纠正此问题:
do {
--i;
palindrom[j] = eingabe[i];
j++;
} while (i != 0);
答案 1 :(得分:1)
尝试使用palindrom[j] = eingabe[i-1];
。
答案 2 :(得分:0)
这将起作用:
i=0;
do{
palindrom[j++] = eingabe[i++];
} while ( eingabe[i]!='/0');
j=0;
do{
palindrom[j++] = eingabe[i--];
} while ([i]>0);
palindrom[j] = '\0';