程序询问是否包含子字符串的字符串
- www.facebook.com
- 脸书网
- “vk.com”
- www.vk.com
应替换为 ***,如示例所示(哪个更好,vk.com 或 facebook.com?→ 哪个更好,*** 或 ***?)实现应使用标准字符串库函数。 H。由于strncpy函数只将3个字符复制到子字符串中,所以这个问题的解决方案没有出来,结果是这样的,***com还是***ebook.com更好?如何解决这个问题?(我认为值得将输入的行复制到缓冲区,然后用它进行某种欺诈)
#include <stdio.h>
#include <string.h>
int read_line(char adress[], int n);
int antisn(char* adress);
int main() {
char adress[300];
printf("Input adress: ");
read_line(adress, 300);
antisn(adress);
}
int read_line(char adress[], int n) {
int ch, i = 0;
while ((ch = getchar()) != '\n')
if (i < n)
adress[i++] = ch;
adress[i] = '\0';
return i;
}
int antisn(char* adress) {
char* vk;
char* wvk;
char* fb;
char* wfb;
wvk = strstr(adress, "www.vk.com");
if (wvk != NULL) {
strncpy(wvk, "***", 3);
}
wfb = strstr(adress, "www.facebook.com");
if (wfb != NULL) {
strncpy(wfb, "***", 3);
}
vk = strstr(adress, "vk.com");
if (vk != NULL) {
strncpy(vk, "***", 3);
}
fb = strstr(adress, "facebook.com");
if (fb != NULL) {
strncpy(fb, "***", 3);
}
if (vk == NULL && wvk == 0 && fb == 0 && wfb == 0)
printf("Nety");
else
puts(adress);
return 0;
}