2.4
题目:重新编写函数suqeeze(s1, s2),将字符串 s1中任何与字符串s2中字符匹配的字符都删除
#include<stdio.h>
#define ARRLEN 20
void squeeze(char[], char []);
void getline(char []); //读取一行数据作为字符串,\\n替换为\\0
int main()
{
char c[ARRLEN];
char s[ARRLEN];
printf(\"请输入字符串s2:\");
getline(c);
printf(\"请输入字符串s1:\");
getline(s);
squeeze(s,c);
if(s[0] == \'\\0\')
printf(\"删除后字符串s1为空\\n\");
else printf(\"删除后的s1字符串为%s\\n\",s);
return 0;
}
void squeeze(char s[], char c[])
{
int i,j;
int k =0 ;
for(i = 0;s[i] != \'\\0\';i++)
{
for(j =0;c[j] != \'\\0\';j++)
{
if(s[i] == c[j])
break;
}
if(c[j] == \'\\0\') //成立说明没有匹配的字符
s[k++] = s[i];
}
s[k] = \'\\0\';
}
void getline( char c[])
{
int ch;
int i = 0;
while((ch = getchar()) != \'\\n\')
{
c[i++] = ch;
}
c[i] = \'\\0\';
}
2.5
题目:编写函数any(s1, s2),将字符串s2中的任一字符在字符串s1中第一次出现的位置作为结果返回。如果s1中不包含s2中的字符,则返回-1
#include<stdio.h>
#define ARRLEN 20
int any(char[], char []);
void getline(char []); //读取一行数据作为字符串,\\n替换为\\0
int main()
{
char c[ARRLEN];
char s[ARRLEN];
int p;
printf(\"请输入字符串s1:\");
getline(s);
printf(\"请输入字符串s2:\");
getline(c);
p = any(s,c);
printf(\"第一次出现的位置为%d\\n\",p);
return 0;
}
int any(char s[], char c[])
{
int i,j;
for(i = 0;s[i] != \'\\0\';i++)
{
for(j =0;c[j] != \'\\0\';j++)
{
if(s[i] == c[j])
return i;
}
}
return -1;
}
void getline( char c[])
{
int ch;
int i = 0;
while((ch = getchar()) != \'\\n\')
{
c[i++] = ch;
}
c[i] = \'\\0\';
}
继续阅读与本文标签相同的文章
上一篇 :
学习编程要注意的几个地方!!据说大部分人都不清楚
下一篇 :
中国国际信息通信展览会
-
草图大师怎么垂直旋转?su软件垂直旋转模型的方法
2026-05-18栏目: 教程
-
数字技术让“诗和远方”融为一体
2026-05-18栏目: 教程
-
“成人网站”免费让人上钩,其背后有什么不为人知的猫腻,网友:不敢惹
2026-05-18栏目: 教程
-
网络互连技术之路由协议
2026-05-18栏目: 教程
-
信息技术助力物流行业转型升级
2026-05-18栏目: 教程
