我一直在寻找答案。我将制作一系列我自己的字符串函数,如my_strcmp()
,my_strcat()
等。
是否strcmp()
通过两个字符数组的每个索引工作,如果 ASCII 值在两个字符串的相同索引处较小,则该字符串按字母顺序更大,因此返回 0 或 1 或 2?我想我要问的是,它是否使用字符的 ASCII 值来返回这些结果?
任何帮助将不胜感激。
[修改]
好的,所以我想出了这个......它适用于所有情况,除非第二个字符串大于第一个字符串。
有小费吗?
int my_strcmp(char s1[], char s2[])
{
int i = 0;
while ( s1[i] != '\0' )
{
if( s2[i] == '\0' ) { return 1; }
else if( s1[i] < s2[i] ) { return -1; }
else if( s1[i] > s2[i] ) { return 1; }
i++;
}
return 0;
}
int main (int argc, char *argv[])
{
int result = my_strcmp(argv[1], argv[2]);
printf("Value: %d \n", result);
return 0;
}