C语言基础 9.4作业

1. 输入一个字符串,再输入两个数n,m.要求把字符串中从n个数开始,向后数m个数,生成一个新的字符串并输出, 如果数完m个数之后超出字符串的长度,只输出原长度就好,如果m和n输入的值不合法,那么提示不合法。
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
	char brr[100];
	unsigned int n,m,i,j;
	printf("输入字符个数为:");
	scanf("%d",&j);
	char arr[j];
	printf("请输入一串字符:");
	getchar();
	gets(arr);
	printf("请再次输入两个数字:");
	scanf("%d%d",&n,&m);
	if(n>j||m==0)
	{
		printf("输入值不合法\n");
	}
	for (i=0;i<m;i++)
	{
		brr[i]=arr[n-1];
		n++;

	}
//	for(i=0;i<m;i++)
//	{
//		printf("%c",brr[i]);
//	}
	puts(brr);
	return 0;
2.独立封装strcpy
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
	   char a[100]="";
	   char b[100]="";
	   gets(a);
	   gets(b);
	   int i,n=0,j,m=0;
	   for(j=0;b[j]!='\0';j++)
	   {
	   		m++;
	   }
	       j=0;
		   
		for(i=0;i<=m;i++)
		{
			a[i]=b[j]; 
			j++;
		}
	   puts(a);  

	return 0; 
} 
3.选择排序
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
	int a[10]={2,4,3,16,67,24,34,7,45,32};
	int i,j;
	for(i=0;i<10;i++)
	{
		for(j=1+i;j<10;j++)
		{
			if(a[i]>a[j])
			{
				int min=a[j];
				a[j]=a[i];
				a[i]=min;
			}
		}
	}
	for(i=0;i<10;i++)
	{
		printf("%d ",a[i]);
	}
	printf("\n");
	return 0;
}
4.删除字符串中的重复字符,要求只用一个数组    “aa_b_cc” --->结果 “a_bc”
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
	char a[100];
	int i,j,m=0;
	gets(a);
	for(i=0;a[i]!=0;i++)
	{
		for(j=i+1;a[j]!='\0';)
		{
			if(a[i]==a[j])
			{
				
				for(m=j;a[m]!='\0';m++)
				{
					a[m]=a[m+1];
		        }	
			}
			else
			{
				j++;
			}
		}
	}
	puts(a);
	return 0; 
} 
5.终端输入一个位置,要求从指定位置插入 char str[20] = "abc"; char dest[30] = "12345";        例子:n=0-->abc12345 n=1--> 1abc2345 n=3-->123abc45
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
	int n,i,j=0,m=0;
	scanf("%d",&n);
	char str[20]="abc";
	char dest[30]="12345";
	char b[30];
	char c[30];
	for(i=n;dest[i]!='\0';i++)
	{
		b[j]=dest[i];
		j++;
	}
	for(i=0;i<n;i++)
	{
		c[m]=dest[i];
	}
	strcat (c,str);
	strcat (c,b);
	puts(c);
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值