大学计算机作业八,中国石油大学第八章计算机作业

中国石油大学,第八 章,计算机作业

8.1 字符转换

描述

提取一个字符串中的所有数字字符(‘0’...‘9’)将其转换为一个整数输出。

输入

一个以回车符为结束标志的字符串(少于80个字符)。

输出

把字符串中的所有数字字符(‘0’...‘9’)转换为一个整数并输出。

#include

int main()

{

char str[80];

int i,m=0;

gets(str);

for(i=0; str[i]!='\0'; i++)

{

if(str[i]<='9'&&str[i]>='0')

{

m=m*10+(str[i]-48);

}

}

printf("%d\n",m);

}

8.2 合并字符串

输入两个已经按从小到大顺序排列好的字符串,编写一个合并两个字符串的函数,使合并后的字符串,仍然是从小到 大排列。

输入:

两个已经排好顺序(升序)的字符串

输出:

一个合并在一起的有序(升序)的字符串

#include

#include

#include

int main()

{

char a[100],b[100],t;

int k,i,j;

gets(a);

gets(b);

strcat(a,b);

k=strlen(a);

for(j=1;j<=k;j++)

for(i=0;i

if(a[i]>=a[i+1])

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

}

puts(a);

return 0;

}

8.3 删除重复字符

背景:

输入一个长度不超过 100 的字符串,删除串中的重复字符。

输入:

输入要检查的字符串,长度不超过100个字符。例如:abacaeedabcdcd。

输出:

删除重复字符后的字符串。例如:abced。

#include

int main()

{

char a[100],b[100];

int n,i,j,cnt=1;

gets(a);

n=strlen(a);

b[0]=a[0];

for(i=1;i

{

for(j=0;j

{

if(a[i]==a[j])

break;

}

if(a[i]==a[j]&&i==j)

{

b[cnt]=a[i];

cnt++;

}

}

for(i=0;i

printf("%c",b[i]);

printf("\n");

return 0;

}

8.4 删除字符串中指定字符

输入两个字符串 s1 和 s2 ,在 s1 中删除任何 s2 中有的字符。例如, s1 :“ abc123ad ”, s2 :“ a1 ” ,则输出“bc23d ”。

输入: 两个字符串 s1 和 s2

输出: 删除后的字符串 s1

要求:

设计一个效率尽量高的算法,对每个字符串只扫描一遍就可以了。

如果采用先进行串连接,然后再进行排序的算法,则效率太低了

#include

int main()

{

char a[100],b[100],c[100];

int m,n,i,j,k=0,p,q;

gets(a);

gets(b);

n=strlen(a);

m=strlen(b);

for(i=0;i

{

for(j=0;j

{

if(b[j]==a[i]) break;

}

for(p=0;p

if(c[p]==a[i]) break;

if(j==m&&p==k)

{

c[k]=a[i];

k++;

}

}

for(i=0;i

printf("%c",c[i]);

printf("\n");

return 0;

}

8.5 单词有多

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值