【问题标题】:Read a string and convert it to 2D int matrix C读取一个字符串并将其转换为 2D int 矩阵 C
【发布时间】:2016-06-10 22:24:12
【问题描述】:

我想尝试让用户将特定矩阵的行(尺寸由用户定义,最大为 15x15)输入字符串。然后,我想尝试扫描此字符串中的空格数量,以确保如果用户指定了 5 列,则用户每行仅输入 5 个条目。所以如果用户指定 5x5 矩阵,他应该输入一行:

1 2 3 4 5.

接下来,

6 7 8 9 10 等等。

每一行输入应该对应一行。因此,例如,如果空格数量超过 4,我会知道用户输入的数量超过了每行应有的数量。然后,我想在读取所有行后以某种方式分割该字符串并将其转换为 2d 整数数组,以便之后有资格进行矩阵加法或乘法运算。 如果问题描述有意义,是否有人对如何执行此操作有任何提示?

【问题讨论】:

  • 到目前为止做了什么?
  • 计算数字而不是空格会更可靠(并且用户友好)。

标签: c arrays string matrix char


【解决方案1】:

假设你有一个字符串数组:

char string[N];

int spaces_num=0,i=0,last_spaces=0;

while(true)
{
  scanf('%s',string);//Perhaps ma need a better way to read user input
  //loop the folowing code until user not needed for user input
  while(string[i]!=='\0' && i < N)
  {
     if(string[i]==' ') spaces_num++;
     i++;
  }

  if(last_spaces>0 && spaces_num!=last_spaces)
  {
    break;
  }
  else
  {
   last_spaces=spaces_num;
  }
}

我希望它可以工作,上面的代码可能需要修复,但这只是给出解决方案的想法。不要太从字面上理解。

【讨论】:

  • 这里有一些语法错误,看不到索引增加的地方。
  • 给出解决方案的一些想法。我必须为年龄编写 ANSI C。
  • string[i]!=='\0' || i &lt; N 对我来说看起来像一个错误 -- 你想要一个 &amp;&amp; 那里。
  • 评论不应该说谢谢。但是感谢您告诉错误。我修好了
猜你喜欢
  • 2016-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-12
  • 1970-01-01
  • 2021-04-16
  • 1970-01-01
相关资源
最近更新 更多