【发布时间】:2017-12-21 01:45:01
【问题描述】:
如果我有这两个命令行参数,有没有办法可以将第二个命令行参数(包含 26 个字符的单个单词)分开,然后将它们放入一个新的字符数组中?
./substitution qwertyuiopasdfghjklzxcvbnm
我尝试使用这种语法,但不确定它是否有效?
char mapping[] = argv[1];
我认为该语句会创建一个称为映射的新字符数组,并将其分配给一个字符串,因为我假设argv[1] 是一个字符串。然后每个索引将根据命令行参数具有相应的字符:
mapping[0] = 'q'
mapping[1] = 'w'
...
任何提示将不胜感激! :)
【问题讨论】:
-
这没有多大意义,C中的string存储在char数组中(
argv[1]is 一个 char 数组). -
char mapping[strlen(argv[1])+1]; strcpy(mapping, argv[1]); -
是的,但它不是字符串。
-
@M.Ng
'\0'终止一个字符串。没有它,数组的内容不符合字符串的条件,但你当然可以这样做。 -
@FelixPalmen-- 字符串当然是(以空结尾的)字符数组,但
argv[1]不是数组,而是指向数组第一个元素的指针。
标签: c arrays command-line-arguments