如果我有:
#include <stdio.h>
int main(int argc, char *argv[]) {
int length = strlen(argv[1]);
和argv [1]只是一个单词,例如“hello”,我如何向后索引并逐字打印?
我尝试使用strrev,但显然这不是在linux中,而是包含我宁愿仅通过argv [1]向后循环的函数。
我试过了:
int i;
for (i = length; i == 0; i--){
printf("%c", argv[1][i]);
}
但我知道在我执行它之前这是错误的。
答案 0 :(得分:3)
如何向后索引并逐字打印
int i;
for (i = strlen( argv[1] ) - 1 ; i >= 0; i--){
printf("%c", argv[1][i]);
}
此外,您当然需要#include <string.h>
来处理与strlen
等字符串相关的功能。
答案 1 :(得分:1)
函数strlen
将返回数组/字符串中的字符数,但是,最后一个元素不是返回的值,而是length = strlen(argv[1]) - 1
我也相信你的for
循环:
for (i = length; i >= 0; i--){ //Note the change of i==0 to i >= 0
答案 2 :(得分:1)
虽然接受的答案有点可以,但不应该这样。
#include <stdio.h>
int main(int argc, char *argv[]) {
int length = strlen(argv[1]);
这在3个帐户中不正确: