c - C语言从右到左写字符串

标签 c string

你好,我正在尝试读取输入并将每个字符添加到字符串的左侧,例如:

我输入了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/

相关文章:

c - C 中的文本文件到数组

c - 在 C 的条件语句中使用数组元素时出错

python - 如何提取带有三个正斜杠的字符串?

c# - 在 DataGridView 中查找字符串

string - 在 Gulp 中是否可以使用字符串而不是源文件开头?

iphone - 为 NSURLRequest 生成 URL 字符串失败启动

c - 输入值创建二叉搜索树

C: 将整个文件读入缓冲区并字节交换 buf | ADDECEFA -> 死面

c - C 中的移位操作

java - Java 可以动态生成 Unicode 字符吗?