你好,我正在尝试读取输入并将每个字符添加到字符串的左侧,例如:
我输入了1,输出应该是:
1
然后我想加上数字2:输出应该是:
21
然后我想加上数字 3:输出应该是:
321
然后我想加上数字 4:输出应该是:
4321
等...
到目前为止,我已经处理了字符串长度 = 0 和 1 的情况:
if( stringLength == 1 ){
string[ stringLength++ ] = string[ 0 ];
string[ pStringLength - 1 ] = input;
}
else if( stringLength == 0 )
string[ stringLength++] = input;
我的问题是 stringLength > 2 :
if( stringLength >= 2 ){
for(indexx = 1; indexx < stringLength; indexx++){
string[ stringLength++ ] = string[ stringLength - indexx ];
}
string[ 0 ] = input;
}
上面的代码给我段错误,在此先感谢您的帮助! 编辑!!:
if( stringLength >= 2 ){
for(indexx = 1; indexx < stringLength; indexx++){
string[ stringLength ] = string[ stringLength - indexx ];
}
stringLength++;
string[ 0 ] = input;
}
现在输出总是限制为 2:
如果我有:
21
然后我尝试添加“3”:
32
“1”已删除,只留下最后 2 个输入...
最佳答案
string[ stringLength ] = string[ stringLength - indexx ];
上面的语句不断地覆盖相同的索引。这就是为什么输出被限制为 2 位数字的原因。
提示:需要将元素从末尾开始往右推一位,这样最后覆盖string[0]。
假设数组是 {1,2,3,4} 我想加 5 所以输出应该是 {5,1,2,3,4}
然后将每个元素从末尾右移一个位置将得到数组 {1,1,2,3,4} 然后你可以做 array[0]=5;
可以这样换档
for(i=arr.length-1;i>=1;i--)
{
arr[i]=arr[i-1];
}
希望对您有所帮助。
关于c - C语言从右到左写字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30942910/