文章标题

来源:互联网 发布:打击乐器软件 编辑:程序博客网 时间:2024/06/03 21:12

0416
1.删除字符串中的子串

#include <stdio.h>#include <malloc.h>int delete(char *ptr1,char *ptr2,char *result){    int count = 0;    int flag = 0;    int i = 0;    char *main = ptr1;    char *sub = ptr2;    if( ptr1 == NULL || ptr2 == NULL )    {        return -1;    }    while( *main != '\0' &&  *sub != '\0' )    {        count = 0;        flag = 0;        while( *main == *sub )           {            flag = 1;            main ++;            sub++;            count++;        }        if( flag == 1 )        {            if( *sub != '\0')                    {                main = main - count;                for( i = 0; i < count; i++ )                {                    *result = *main;                    main++;                    result++;                }                sub = ptr2;                           continue;            }            else            {                 sub = ptr2;                    continue;            }        }        *result = *main;                  main++;         result++;    }    *result = '\0';}int main(){    char *ptr1 = (char *)malloc(sizeof(char)*100);    char *ptr2 = (char *)malloc(sizeof(char)*100);    char *result = (char *)malloc(sizeof(char)*100);    printf("please input ptr1 : \n");    scanf("%s",ptr1);    printf("please input ptr2 : \n");    scanf("%s",ptr2);    delete(ptr1,ptr2,result);    printf("%s\n",result);    free(ptr1);    free(ptr2);    free(result);    return 0;} 

2.选择排序和冒泡排序

#include <stdio.h>#include <string.h>swap(int *num1,int *num2){    char temp;    temp = *num1;    *num1 = *num2;    *num2 = temp;}sort1(int *arr,int len)       //冒泡排序{    int i = 0;    int j = 0;    for( i = 0; i < len - 1; i++ )    {        for( j = 0; j < len - i - 1; j++ )        {            if( arr[j] > arr[j + 1] )            {                swap(&arr[j],&arr[j + 1]);            }        }    }}sort2(int *arr,int len)        //选择排序{    int  i = 0;    int j = 0;    int min = 0;    for( i = 0; i < len; i++ )    {        min = i;        for( j = i + 1; j < len; j++ )        {            if( arr[min] > arr[j] )            {                min = j;            }        }        if( min != i )        {            swap(&arr[i],&arr[min]);        }    }}int main(){    int arr[6] = {1,3,5,6,2,4};    int i = 0;    int num = 0;    printf("排序之前:");    for( i = 0; i< 6; i++ )    {        printf("%d\t",arr[i]);    }    printf("\n");    printf("please select: 1:冒泡排 序 2:选择\n");    scanf("%d",&num);    switch(num)    {        case 1:                  sort1(arr,6);                  break;        case 2:                  sort2(arr,6);                  break;        default:                  printf("error!\n");    }    printf("排序之后:");    for( i = 0; i < 6; i++ )    {        printf("%d\t",arr[i]);    }    printf("\n");    return 0;}
0 0
原创粉丝点击