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