嗨,我有兩個不同的字符串,我需要找到字符串中的普通字符。我設法得到公共字符串,但我需要返回「空字符串」輸入不具有相同的字符。查找字符串中的常見字符
當前的問題:
輸入1:ABC
輸入2:DEF
輸出:'//它SHLD是 「空字符串」;
繼承人我的代碼:
#include <stdio.h>
#include <string.h>
void strInterset(char * str1, char * str2, char * str3);
int main() {
char str1[50], str2[50], str3[50];
printf("Enter str1: \n");
scanf("%s", str1);
printf("Enter str2: \n");
scanf("%s", str2);
strInterset(str1, str2, str3);
if (*str3 == '\0')
printf("strIntersect(): null string\n");
else
printf("strIntersect(): %s\n", str3);
return 0;
}
void strInterset(char * str1, char * str2, char * str3) {
int i = 0, j;
for (i; *(str1 + i) != '\0'; i++) {
for (j = 0; *(str2 + j) != '\0'; j++) {
if (*(str2 + j) == *(str1 + i)) {
strcpy(str3, str1 + i);
str3++;
}
}
}
}
什麼是你正面臨着與上面的代碼的問題?初始化str3 [50]爲空 – Karthick
如果沒有公共字符,則str3是具有不確定值的非初始化變量。 –
即使有通用字符,'str3'也不會被NUL終止 –