【发布时间】:2021-03-08 19:01:31
【问题描述】:
我有以下代码:
#include <stdio.h>
#include <stdlib.h>
char values[] = {"abcde"};
int main(int argc, char *argv[])
{
printf("%d\n", strcmp(&values[0], argv[1]));
return EXIT_SUCCESS;
}
我是这样编译和启动的:
$ gcc main.c -o main
$ ./main a
98
strcmp的结果是98,所以值不一样。当我在代码中将&values[0] 替换为"a" 时,我看到它们是相同的(strcmp 输出等于0)。
那么有没有办法将values[0] 作为字符串访问?我想我需要在末尾以某种方式指定 \0 以便将 char 用作字符串,但我找不到方法。
【问题讨论】:
-
{"abcde"}; -
你想做什么?这看起来像一个 XY 问题。
-
我不明白。
So is there a way to access values[0] as a string ?您正在以字符串的形式访问它(对我而言)。 “以字符串形式访问某些内容”是什么意思?您想只比较字符串的初始部分吗? IE。你解释了发生了什么。请说明您希望发生什么。 -
@KamilCuk 抱歉没有解释。我的最终目标是能够找到一种使 values[0] 等于“a”的方法。 Aplet123 提供的解决方案适用于我的情况,也许它有助于理解我想要做什么!
-
@HugoBlanc 好吧,大括号不需要了:)