#include <stdio.h>
#define MAX 1000
void any(char s1[], char s2[], char s3[]);
int main()
{
char string1[MAX], string2[MAX], string3[MAX];
printf("Jepni stringen 1\n");
scanf("%s", &string1); //saving string 1
printf("Jepni stringen 2\n");
scanf("%s", &string2); //saving string 2
any(string1, string2, string3); /*comparing characters from string 2 to string 1 and saving the places where they are equal on third string */
printf("%d", string3[0]); //printing the first character of the third string
return 0;
}
void any(char s1[], char s2[], char s3[])
{
int i, j, k;
k = 0;
for (j = 0; j != '\0'; j++) {
for (i = 0; i != '\0'; i++) {
if (s1[i] == s2[j]) {
s3[k] = i;
j++;
k++;
}
}
}
}
我正在尝试创建扫描 2 个字符串(将它们保存在字符串 1 和 2 上)的 ac 程序,而不是使用函数的程序,如果字符串 2 字符与字符串 1 相等,则任何字符都将逐个字符地看到,如果它们是,它将给出找到它们的第一个位置。如果什么也没找到,它会显示 -1。程序要求第一个字符相等,这就是为什么我总是打印字符串 3 中的第一个字符。程序不工作因为它总是打印-1。例如,如果我将字符串 1 dad 放在字符串 2 上,字符d 程序应显示0位置,如果我将dad放在字符串 1 上,而在字符串 2 上放置a 它应该显示1。