我正在使用命令行参数编写C程序。
    每当我在命令行中给字符串以空格时,它都会拆分为子文件,

用于样本输出

$ ./cmdline 4646 313 256 96664

commandline args count=5
exe name=./cmdline
split_part1=4646
split_part2=313
split_part3=256
split_part4=96664


我想要相同的输出而在字符串之间不留任何空格。怎么做,每个子部分应该用相等数目的字符串分割。请帮忙。

#include <stdio.h>
int main (int argc, char *argv[] )
{
  int i=0;
  printf("\n commandline args count=%d", argc);
  printf("\n exe name=%s", argv[0]);
  for (i=1; i< argc; i++)
  {
    printf("\n");
    printf("\n split_part%d=%s", i, argv[i]);
  }

  printf("\n");

  return 0;
  }

最佳答案

根据评论,实现所需目标的简单算法如下所示

(对于5的固定令牌大小,以后可以根据要求进行修改)


检查是否argc ==2
计算argv[1]的字符串长度,并将其存储。
取一个变量用作索引。
编写一个循环,其中断条件为index < string_length,增量条件为index +=5
使用printf()(用于说明,也可以添加存储部分),例如

printf("%5s\n" &(argv[i][index]));

10-06 13:00
查看更多