【发布时间】:2023-09-19 01:31:02
【问题描述】:
晚上好,我有 2 个函数,每个函数都接受一个指向 char 的指针作为参数:
char pointer[255];
func1(char* pointer)
{
...
memcpy(pointer,some_char,strlen(something));
return;
}
func2(char* pointer)
{
...
if (pointer==someother_char) exit(0); //FAILs
//also I have
if(pointer==someother_pointer2char); // FAILs
}
现在我尝试了 strstr,strcmp 等...不起作用。想尝试 memcmp 但我没有静态 len。因为我必须将 char* 与 char 和 char* 与 char* 进行比较,所以我需要两种解决方案,对吗?
那么,如何以最短的方式比较这些指针(实际上是指针)?
谢谢。
编辑
感谢 wallacer 和 Code Monkey 现在进行 char* 到 char 的比较,我使用以下方法:
func1(char* ptr){
char someother_char[255];
char *ptr_char = NULL; //I have to strcmp a few values so this is why I initialize it first
...
ptr_char = someother_char;
if (strcmp(ptr,ptr_char) == 0) //gtfo and it does...
...
ptr_char = some2nd;
if(strcmp...
可能有任何建议...(用于比较的外部函数?)
建议 1(来自 Code Monkey)
#include <stdio.h>
int main(void) {
char tempchar[255];
tempchar[0] = 'a';
tempchar[1] = 'b';
tempchar[2] = '\0';
char *ptr_char;
ptr_char = &tempchar[0];
printf("%s", ptr_char);
return 0;
}
【问题讨论】:
-
告诉我们你是如何尝试的
strcmp -
您使用的是 strcmp() == 0 还是 !=0?
-
我已经尝试过 strcmp() == 0,现在它可以工作了。剩下的就是比较 char* 的指针和 someother_char[255];
-
您似乎对 C 和指针不熟悉。我可以建议阅读 comp.lang.c 常见问题解答,尤其是关于指针和数组的章节吗? c-faq.com