c - 如何修改这个char数组?
问题描述
我正在使用堆栈进行字符串反转,我是怎么做的,将字符一个字符一个字符地存储在堆栈中,然后将它们一个接一个地取出,这样它们就被反转了,但是当我将字符分配给堆栈弹出元素我遇到了问题,因为堆栈由 void 组成:
char *string_invert(char *str)
{
Stack *s1 = NULL;
char *result;
int i = 0;
s1 = stack_init();
if (s1 == NULL)
{
return NULL;
}
while (str[i] != '\0')
{
stack_push(s1, &str[i]);
i++;
}
result = (char *)malloc((i + 1) * sizeof(char));
if (result == NULL)
{
return NULL;
}
i--;
while (stack_isEmpty(s1) != TRUE)
{
result[i] = stack_pop(s1);
i--;
}
stack_free(s1);
return result;
}
解决方案
推荐阅读
- javascript - 如何使下拉选择触发叠加图像?
- pandas - Unpivot 一个数据框,该数据框在一行中包含两个团队的信息?
- python - 如何要求用户在 python 中输入日期?
- scala - 使用 Slick 生成的代码的方法 += 的参数过多
- python - python中代码的执行顺序是什么
- hyperledger-fabric - Hyperledger Caliper 网关错误:基准执行期间出现意外错误:错误:请使用网关标志重试
- pyspark - 创建一个标记客户的新列
- javascript - Nodejs socket.io 将来自客户端(angular12)的网络摄像头流显示为空对象
- laravel - laravel - 如果数据库发生变化,发送通知
- python - 在 Selenium Python 中更改代理