我有以下案例:
数组定义为无符号整数:
uint8 myArray[6][10] = {"continent","country","city","address", "street", "number"};
字符串
现在我想获取字符串“city”的索引。我想这样做:
uint8 idx;
for(idx = 0; idx < sizeof(myArray)/sizeof(myArray[0];i++))
{
if((myArray[idx]) == "city") // This can not work because the array is an uint8 array
{
/*idx = 2 ....*/
}
}
型
不使用string.h中的函数(如strcpy等)的正确方法是什么?
2条答案
按热度按时间z0qdvdin1#
正如其他人指出的那样,你不能用相等运算符
=
比较两个C字符串,相反,你需要使用strcmp
,因为你不允许使用它,你需要自己实现它。这里strcmp in glibc的实现
所以你的代码可以是这样的:
字符串
2wnc66cl2#
您需要逐个字符地比较字符串。
为此,您编写了一个循环,从第一个字符开始,直到它在任一字符串中找到一个不匹配的字符或字符串结束标记,无论哪个先出现。