7.15日志

1.work1.c

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
   char *str = (char *)malloc(sizeof(char)*32);
   char *ptr, *c= (char *)malloc(sizeof(char)*32);
   printf("INPUT: ");
   scanf("%s", str);
   ptr = str;
   str +=  strlen(str) - 1;
   while(str >= ptr)
   {
    *c ++ = *str --;
   }
   *c= '\0';
   printf("%s\n", c-strlen(ptr));
   while(1);
   return 0;
}

2.work2.c

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void change(int a,char *s,int n)                        
{                                
 int i,j=0;
 for(i=0;i<32;i++)
 {
      s[i]=a%n;
   a=a/n; 
   if(a==0)
   {
          break;
      }
 }
for(;i>=0;i--,j=0)
{
 if(s[i]>=10)
 {
      switch(s[i])
   {
     case 10:s[i]='A';
   printf("%c",s[i]);
   j++;break;
        case 11:s[i]='B';
   printf("%c",s[i]);
   j++;break;
        case 12:s[i]='C';
   printf("%c",s[i]);
   j++;break;
        case 13:s[i]='D';
   printf("%c",s[i]);
   j++;break;
        case 14:s[i]='E';
   printf("%c",s[i]);
   j++;break;
        case 15:s[i]='F';
   printf("%c",s[i]);
   j++;break;
        default :printf("大于16进制只用数字表示\n");break;
   }
 }
    if((i=i-j)>=0)
    {
          printf("%d",s[i]);
    }
}
}
main()
{
   int  a,n;
   char *s=(char*)malloc(sizeof(char)*64);
   printf("输入一个整数\n");
   scanf("%d",&a);
   printf("输入转换成几进制数\n");
   scanf("%d",&n);
   change(a,s,n);
   printf("\n");
   while(1);
   
}

3.work3.c

#include <stdio.h>
#include <string.h>
int main()
{
    char a[100];
  char * c = a;
    char b[10];
  char * d = b;
    int n;
    int num = 0;
    printf("请输入字符串\n");
    scanf("%s",a);
   
    printf("请输入子串\n");
    scanf("%s",b);
   
    n = strlen(d);
    while(strlen(c) > 0)
    {
        if(strncmp(c,d,n) == 0)
        {
            num++;
            c += n;
        }
        else
        {
            c++;
        }
    }
    printf("%d\n",num);
 while(1);
    return 0;
}

4.work4.c

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
 char str[1000] = {0};   //用于存放
 char ch, *p = str;
 int i=0;
 while((ch = getchar()) != '\n')
 {
   str[i] = ch;
   i ++;        //从键盘输入
 }
 
 //把指针p移动到str的结尾,遇到空格,替换掉
 while(*p != '\0')
 {
  if(*p == ' ')
  {
    *p = '\0';   //替换
  }
   p ++;             //从str[0]>>>>>str[1],以此类推
 }
 //指针p向前移动,打印每个单词
 while(p != str)
 {
    p --;
    if(*p == '\0')
    {
      printf("%s ", p+1);
    }
 }
 printf("%s\n", p);
 while(1);
 return 0;
}

5.work5.c

#include <stdio.h>
int mystrlen(const char *str)
{
int length = 0;
while (*str++)
{
length++;
}
return length;
}
char* mystrstr(const char *str, const char *sub)   //寻找字串函数
{
int n = 0;
if (sub != NULL)
{
while (*str)
{
for (n = 0; (*(str + n) == *(sub + n)); n++)
{
if (*(sub + n + 1) == '\0')
{
return (char *)str;
}
}
str++;
}
return NULL;
}
else
{
return (char *)str;
}
}
void IdenStr(char *str, char *outbuf)
{
int count = 0;
char *p1 = NULL;
char *p2 = NULL;
char *h = "head"; //祯头,桢尾
char *t = "tail";
int tlen = mystrlen(t);
p1 = mystrstr(str, h); //找到head,tail的位置
p2 = mystrstr(str, t);
p2 += tlen;
count = p2 - p1; //求出head,tail之间有多少字符
while (count)
{
*outbuf++ = *p1++; //全部存入outbuf中
count--;
}
}
int main()
{
char str[100] = {0};
char outbuf[100] = {0}; //存放处理完的字符串
printf ("Please input a string (head...tail): \n");
scanf ("%s", str);
IdenStr(str, outbuf);
printf ("The result is %s\n", outbuf); //打印结果
while(1);
return 0;
}

猜你喜欢

转载自blog.csdn.net/liuyuan50/article/details/81057105