将char数组转换为int以停止程序

Dav*_*vid 1 c arrays

我正在创建一个编辑距离程序,它接收两个字符串指针并返回它们之间的编辑距离.我遇到的唯一问题是结束该计划.基本上当用户为两个字符串输入-1时,程序应该结束.我一直在尝试所有类型的东西和搜索,但似乎无法阻止它.这就是我所拥有的:

char * word1;
char * word2;
char string1[1000];
char string2[1000];
int d;


do{
printf("Enter first string:");
scanf("%s", &string1);
printf("Enter second string:");
scanf("%s", &string2);
if((int)string1[0] == -1 && (int)string2[0] == -1)
        break;
printf("%d\n", string1[0]);
word1 = string1;
word2 = string2;

printf("%s\n", word1);
printf("%s\n", word2);
d = distance (word1, word2);
printf ("The edit distance between %s and %s is %d.\n",word1, word2, d);
}while((int)string1[0] != -1);

return 0;
Run Code Online (Sandbox Code Playgroud)

eya*_*alm 5

检查(int)string1[0] == -1不够好.此条件检查string1的第一个char是否为"-1".当然,当你输入两个字符' - '和'1'(和终止\0)时,这不是真的.

您可以通过两种方式正确检查.叮叮当当:

!strcmp(string1, "-1")
Run Code Online (Sandbox Code Playgroud)

作为整数:

atoi(string1) == -1
Run Code Online (Sandbox Code Playgroud)