如何在 C 中通过 argv[1] 进行索引?

How to index through argv[1] in C?

如果我有:

#include <stdio.h>

int main(int argc, char *argv[]) {
    int length = strlen(argv[1]);

而argv[1]one只是一个单词,比如"hello",我如何倒着索引,一个字母一个字母打印出来呢?

我尝试使用 strrev,但显然这不在 linux 中,而不是包括函数我宁愿只是循环通过 argv[1] 向后。

我试过了:

int i;  
for (i = length; i == 0; i--){

    printf("%c", argv[1][i]);
}

但我什至在执行之前就知道这是错误的。

how can I index through it backwards and print out letter by letter

int i;  
for (i = strlen( argv[1] ) - 1 ; i >= 0; i--){
    printf("%c", argv[1][i]);
}

此外,您当然需要 #include <string.h> 才能实现 string-related 函数,例如 strlen

函数 strlen 将 return array/string 中的字符数,但是,最后一个元素不会是 returned 的值,而是 length = strlen(argv[1]) - 1

另外我相信你的 for 循环你的意思是:

for (i = length; i >= 0; i--){ //Note the change of i==0 to i >= 0

虽然接受的答案还可以,但不应该这样。

#include <stdio.h>

int main(int argc, char *argv[]) {
    int length = strlen(argv[1]);

3 个帐户不正确:

  1. 不检查第一位是否有argv[1],最好 通过确保 argc == 2
  2. 修复 使用了
  3. strlen,但不包括 string.h。你确定你在编译时启用了警告吗?
  4. 一个有点文体但仍然重要的评论是,如果你要多次使用 argv(而且你是),那么字符串应该存储在某个地方。一般来说,在解析参数的初始阶段后,您不想依赖 argv 或 argc