字符串迭代,'expression must have a pointer-to-object type'错误



我在对字符串进行迭代时遇到问题。

功能输入:

  1. 一个数字字符串,中间没有空格,范围为[-9,9],最多10个数字(如果每个数字都是负数,则表示最多20个字符长(
  2. 字符串的大小

函数需要创建一个数字数组。

例如,如果我得到输入"0";809-2-3";,我的新数组需要是-[8,0,9,-2,-3]。

在我的代码中,我得到了错误"表达式必须有一个指向对象类型的指针",但我不理解它。

这是我写的代码:

void separate_nums(char str, int str_len)
{
int new_arr[20];
int i;
for (i = 0; i <= str_len - 1; i++)//run through the string
{
if (str[i] == '-') //if the char is -, take minus of the next char. Then increase index by one so you'll get to the next number
{
new_arr[i] = -str[i + 1];
i++;
}
else
new_arr[i] = str[i];
}
}

谢谢!

首先,需要一个数组。

  1. 计算位数(n(
  2. 分配一个可以容纳n号的数组

接下来,只是一次看一个字符串字符的问题。任何时候遇到-,只需使用下一个字符,但将其取反。

  1. 初始化一个变量,标识要解析的下一个字符
  2. 循环用于阵列的每个元素,
    1. 假设这个数字不是负数
    2. 如果下一个字符是CCD_ 4,
      1. 数字为负数
      2. 移动到下一个角色
    3. 将下一个数字转换为数字
    4. 如果该数字应该是负数,
      1. 取负数
    5. 将数字存储在当前数组元素中
    6. 移动到下一个角色

当然,我们需要确保用户不会提供垃圾。这由你来处理。

相关内容

最新更新