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;
}