繁体   English   中英

如何在C中平均分割命令行参数

[英]how to split command line arguments equally in C

我正在使用命令行参数编写 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 ,可以稍后根据需要进行修改

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM