题1:
/*1.输入一个字符串,再输入两个数m ,n.要求把字符串中从m个数开始,向后数n个数
生成一个新的字符串并输出,如果数完n个数之后超出字符串的长度,只输出原长度就好
如果m和n输入的值不合法,那么提示不合法。*/
#include <stdio.h>
#include <string.h>
#define N 100
int main(){
int m,n;
char a[N],b[N];
printf("请输入一个字符串:");
gets(a);
printf("请输入m和n:\n");
printf("m = ");
scanf("%d",&m);
printf("n = ");
scanf("%d",&n);
int l=strlen(a);
if(m>=0&&m<=l&&n>=1){
int j=0;
for(int i=m-1;i<m+n-1;i++){
b[j++]=a[i];
}
printf("新字符串为:");
for (int i = 0; i < j; i++){
printf("%c",b[i]);
}
}
else
printf("输入非法!");
// printf("%d\n",l);
// puts(a);
return 0;
}
运行结果:
题2:
/2.独立封装strcpy
#include <stdio.h>
#include <string.h>
#define N 100
int main(){
char a[N];
printf("请输入字符串1:");
gets(a);
char b[N];
printf("请输入字符串2:");
gets(b);
int j=0;
for(int i=0;i<strlen(b);i++){
a[j++]=b[i];
}
a[j]='\0';
//strcpy(a,b);
printf("将字符串2赋值到字符串1上后为:");
puts(a);
return 0;
}
运行结果:
题3:
//3.选择排序
#include <stdio.h>
#include <string.h>
#define N 100
void S_sort(int a[]){
int index;
for(int i=0;i<10;i++){
index = i;
for(int j=i+1;j<10;j++){
if(a[j]<a[index]){
index = j;
}
}
if( index != i){
int t = a[i];
a[i] = a[index];
a[index] = t;
}
}
}
int main(){
int a[10];
printf("请输入10个数:");
for(int i=0;i<10;i++){
scanf("%d",&a[i]);
}
S_sort(a);
for(int i=0;i<10;i++){
printf("%d ",a[i]);
}
return 0;
}
运行结果:
题4:
/* 4.删除字符串中的重复字符,要求只用一个数组"aa_b_cc"--->结果“a_bc” */
#include <stdio.h>
#include <string.h>
#define N 100
int main() {
char str[N];
printf("请输入字符串: ");
gets(str);
int l = strlen(str);
// printf("%d",l);
int k,s=0;
for(int i=0;i<l;i++){
k=i;
for(int j=i+1;j<l;j++){
if(str[k]==str[j]){
str[j]=' ';
}
}
}
//删除字符串里的空格:
int sum=0;
for(int i=0;i<l;i++){
if(str[i]==' ')
sum++;
else{
str[i - sum] = str[i];
}
}
str[l-sum] = '\0';
printf("%d\n",sum);
puts(str);
return 0;
}
运行结果:
题5:
/*5.终端输入一个位置,要求从指定位置插入char str[20] = "abc";
char dest[30]= "12345";
例子:n=O-->abc12345 n=1--> 1abc2345 n=3-->123abc45*/
#include <stdio.h>
#include <string.h>
#define N 100
int main(){
char str[20] = "abc";
char dest[30] = "12345";
int n;
printf("请输入插入的位置n:");
scanf("%d",&n);
//从n处将dest分割成两个字符串
char a[N],b[N];
int k=0,m=0;
for(int i=0;i<n;i++){
a[k++]=dest[i];
}
for(int i=n;i<strlen(dest);i++){
b[m++]=dest[i];
}
if(n>0&n<=5){
strcat(a,str);
strcat(a,b);
puts(a);
}
else if (n==0){
puts(strcat(str,dest));
}
else
printf("输入非法!");
// puts(a);
// puts(b);
return 0;
}
运行结果:
OK,that's all for today.