Tag: 字符串比较

添加新用户到c程序列表

我只是想编写一个简单的函数来将朋友添加到UserAccount列表中。 所有信息都通过参数提供。 如果用户已经在列表中,我不需要再次添加他,但显示记录表明他已经在列表中。 我写了这段代码。 不确定这是否正确,是否有任何改进代码的建议? 这有用吗? int add_friend(UserAccount* user, char Circle, UserAccount* friend) { struct UserAccountNode *p; p = (struct UserAccountNode *) malloc(sizeof(struct UserAccountNode)); while (p != NULL) if(stricmp(user, p->friend) == 0){ p->next = head; // inserting at the beginning head = p; } else { printf(“%d already exists”, friend) }; }

优化的strcmp实现

这个function在这里找到。 这是strcmp的一个实现: int strcmp(const char* s1, const char* s2) { while (*s1 && (*s1 == *s2)) s1++, s2++; return *(const unsigned char*)s1 – *(const unsigned char*)s2; } 我理解除了最后一行之外的所有内容,简言之,最后一行是怎么回事?

在C中比较两个字符串是否相同的最佳方法是什么?

我说有两个字符串(在这种情况下是字符串文字) char *name = “Fotis”; char *second_name = “Fotis”; 我有两种方法可以比较它们,它们都给我一个准确的结果。 第一个是等于运算符( == ),同样: if (name == second_name) printf (“Great success!\n”); 第二个是通过string.h提供的strcmp函数: if (strcmp (name, second_name) == 0) printf (“Great success!\n”); 我的问题是:两者中哪一个最有效率 idiomatic}比较C中两个字符串的方法? 还有另一种更惯用的方式吗?

如何正确比较命令行参数?

我正在尝试编写一个在main中接受参数的C代码; 因此,当我在cmd中编写一些字符串时,程序会在其中执行某些操作。 但我做错了什么,我找不到它。 这是代码: #include #include int main(int argc, char * argv[]){ //File name is main.c if(argc != 3) printf(“Wrong!!!!!!!!!”); else if (argv[1] == “-s”) girls(); //Prints “Girls” else if(argv[1] == “-k”) boys(); //Prints “Boys” else printf(“OMG!!”); } 在cmd; gcc -o gender main.c gender -s pilkington 我输入那些命令。 总是输出 “我的天啊!!” 哪部分错了?