我正在创建一个编辑距离程序,它接收两个字符串指针并返回它们之间的编辑距离.我遇到的唯一问题是结束该计划.基本上当用户为两个字符串输入-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)
检查(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)