输入一个字符串,计算字符串中子串出现的次字数

输入一个字符串,计算字符串中子串出现的次字数

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int number(char *p,char *q,int n)
{
    int length1 = strlen(p);
    int length2 = strlen(q);
    int i;int j = 0;
    n = 0;
    char *d = q;
    while(*p != '\0')
    {
        if(strncmp(p,q,length2) == 0)
        {
            n = n + 1;
            p = p + n;
        }
        else
        {
            p++;
        }
    }
    printf("%d\n",n);
}
main()
{
    char *str;
    char *ptr;
    str = (char *)malloc(sizeof(char)*100);
    ptr = (char *)malloc(sizeof(char)*5);
    int k;
    printf("please input the long:\n");
    scanf("%s",str);
    printf("plesae input the sort:\n");
    scanf("%s",ptr);
    number(str,ptr,k);
}

请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出

#include<stdio.h>
#include<string.h>

void change_sixteen(char *str,int num)
{
    char *ptr = str;
    while(num != 0)
    {
        switch(num % 16)
        {
        case 0:*ptr = '0';break;
        case 1:*ptr = '1';break;
        case 2:*ptr = '2';break;
        case 3:*ptr = '3';break;
        case 4:*ptr = '4';break;
        case 5:*ptr = '5';break;
        case 6:*ptr = '6';break;
        case 7:*ptr = '7';break;
        case 8:*ptr = '8';break;
        case 9:*ptr = '9';break;
        case 10:*ptr = 'A';break;
        case 11:*ptr = 'B';break;
        case 12:*ptr = 'C';break;
        case 13:*ptr = 'D';break;
        case 14:*ptr = 'E';break;
        case 15:*ptr = 'F';break;
        default:break;
        }
        num = num / 16;
        ptr++;
    }
    *ptr = '\0';
}
void change(char *str,int num,int n)
{
    char *p = str;
    if(n == 16)
        change_sixteen(str,num);
    else
    {
        while(num != 0)
        {
            *p = num % n + '0';
            num = num / n;
            p++;
        }
        *p = '\0';
    }

}
void exchange(char *str)
{
    int length = strlen(str);
    char tmp;
    char *q = str + length - 1;
    while(q > str)
    {
        tmp = *q;
        *q = *str;
        *str = tmp;
        --q;++str;
    }
}
main()
{
    int num;
    int n;
    char str[100];
    printf("please input the num:\n");
    scanf("%d",&num);
    printf("please input the radix:\n");
    scanf("%d",&n);
    change(str,num,n);
    exchange(str);
    printf("%s\n",str);
    return 0;
}
  1. 输入5大的顺序排列起来个数(含负数、小数)将它们按由小到大排列(提示:需要排数的数字通过参数传递过来)
/*****************************************************
copyright (C), 2014-2015, Jinling Institute of Tecnology
File name:1-3.c
Author: Zhang.Y.F  Version:0.1    Date: 2018-07-28 14:49
Description:
Funcion List: 
*****************************************************/

#include <stdio.h>
#include<stdlib.h>
void change(float a[],int num)
{
    int i,j;
    for(i = 0;i < num - 1; i++)
    {
        for(j = num - 1;j > i;j--)
        {
            if(a[j] < a[j - 1])
            {
                float b;
                b = a[j];
                a[j] = a[j - 1];
                a[j - 1] = b;
            }
        }
    }
}
int main(int argc, char **argv)
{
    int n = 0;
    int k;
    int v = 1;
    int num = argc - 1;
    float a[100];
    for(n = 0,v = 1;n < num; n++,v++)
    {
        a[n] =atof(argv[v]);
    }
    change(a,num);
    for(k = 0;k < num; k++)
    {
        printf("%f ",a[k]);
    }
        printf("\n");
    return 0;
}

猜你喜欢

转载自blog.csdn.net/chenxinntu/article/details/81265158