学习日志0719

#include<stdio.h>                 //头文件
#include<string.h>                //头文件
#include<stdlib.h>                //头文件 

#define MAX_LEN 100               //宏定义MAX_LEN为100

char *inverted(char *str )        //反转函数
{
    
    int i;                        //定义一个变量用作循环
    int len = strlen(str);        //定义一个变量为字符串的长度
    char *tmp = (char *) malloc (sizeof (char) * MAX_LEN);   //赋值分配
    if( tmp == NULL)             //检测是否赋值成功
    {
        printf(" malloc error!\n");     //输出赋值失败
    exit(1);                        //强制退出
    }
    memset(tmp , 0 ,sizeof(char) * MAX_LEN);   //空间初始化
    for( i = len - 1; i >= 0 ; i--)            //从末尾开始循环
    {
        *(tmp + i) = *str;                     //转移字符
    str++;                                 //移位
    }
    *(tmp + len) = '\0';                       //结束移位
    return tmp;                                //返回字符串
}


int main()                             //主函数
{
    char str[MAX_LEN];                     //定义一个数组
    char *temp = (char *) malloc (sizeof (char) * MAX_LEN);   //赋值分配
    if( temp == NULL)                        //检测是否赋值成功
    { 
        printf(" malloc error!\n");          //打印复制错误
    exit(1);                             //强制退出
    }
    memset(temp , 0 ,sizeof(char) * MAX_LEN);   //空间初始化
    
    printf("please input the string: \n");      //提示输入字符串
    scanf("%s",str);                            //输入字符串
    temp = inverted(str);                       //调用反转函数

    printf("the result is: %s\n",temp);         //输出反转结果
    return 0;                                   //返回置零
}
 

 

#include<stdio.h>        //头文件
#include<string.h>       //头文件
#include<stdlib.h>       //头文件
#define MAX_LEN 100      //宏定义

 

char *inverted(char *str )        //反转函数
{
    
    int i;                        //定义一个变量用作循环
    int len = strlen(str);        //定义一个变量为字符串的长度
    char *tmp = (char *) malloc (sizeof (char) * MAX_LEN);   //赋值分配
    if( tmp == NULL)             //检测是否赋值成功
    {
        printf(" malloc error!\n");     //输出赋值失败
    exit(1);                        //强制退出
    }
    memset(tmp , 0 ,sizeof(char) * MAX_LEN);   //空间初始化
    for( i = len - 1; i >= 0 ; i--)            //从末尾开始循环
    {
        *(tmp + i) = *str;                     //转移字符
    str++;                                 //移位
    }
    *(tmp + len) = '\0';                       //结束移位
    return tmp;                                //返回字符串
}
char *my_switch( int a)              //转换函数
{
    char *temp = (char *) malloc (sizeof( char ) * MAX_LEN);   //赋值
    if( temp == NULL)                        //检查赋值是否成功
    {
        printf(" malloc error !\n");         //错误提示
    exit(1);                             //强制退出
    }
    memset( temp , 0 ,sizeof(char) * MAX_LEN);   //空间初始化
    char *t_tmp = temp;                          //中间指针变量

    while(a != 0)                              //循环
    {
        *t_tmp = a % 10 + '0';                //取余
    t_tmp++;                              //移位
    a = a / 10 ;                         //降位
    }
    *t_tmp = '\0';                            //结束指针
    return temp;                             //返回中间变量
}

int main()                        //主函数
{
    int a;                        //定义一个整形变量
    char *str = (char *) malloc (sizeof( char ) * MAX_LEN);    //赋值
    char *ptr = (char *) malloc (sizeof( char ) * MAX_LEN);    //赋值
    if( str == NULL || ptr == NULL)                    //检查赋值是否成功
    {
        printf(" malloc error !\n");    //赋值失败,输出赋值错误
    exit(1);                        //强制退出
    }
    memset( str , 0 ,sizeof(char) * MAX_LEN);    //空间初始化
    memset( ptr , 0 ,sizeof(char) * MAX_LEN);    //空间初始化
    
    printf("please input the int: \n");          //提示输入整数
    scanf("%d",&a);                              //输入整数
    
    //printf("%d\n",a);                  
    str = my_switch(a);// 调用交换函数

    printf("the first result is : %s\n",str);          //输出反向结果
    ptr = inverted(str);                          //逆向函数
    printf("the last result is : %s\n",ptr);                  //输出正向结果
    free(str);                                   //释放内存
    str = NULL;                                  //地址置为空
    
    return 0;                                    //返回置零
}

 

 

 

 

#include<stdio.h>        //头文件
#include<string.h>       //头文件
#include<stdlib.h>       //头文件

#define MAX_LEN 100      //宏定义

int switch_2(char *str)    //转换函数
{
    int i = 0;                 //定义一个变量,循环
    int j = 0;                 //定义一个变量,循环
    int k = 0;                 //定义一个变量,循环
    int result = 0;            //定义一个变量,输出结果
    int num_temp[15];          //定义一个中间变量数组
    while(*str != '\0')    //当指针结束前
    {
        num_temp[i] =  *str - '0';  //字符串转化为整形
    str++;                                  //字符串移位
    i++;                                    //字符移位
    }
    while(i != 0)                               //当i不等于零时
    {
        for(j = 0; j < i - 1; j++)              //根据i循环记录
    {
        num_temp[k] = num_temp[k]*10;       //进位
    }
    result = result + num_temp[k];          //录入结果
    k++;                                    //移位
    i--;                                    //移位

    }
    return result;                            //返回结果
}

int main()                          //主函数
{
    char str[MAX_LEN];              //定义一个数组
    
    printf("please input the string:\n");    //提示输入字符串
    scanf("%s",str);                         //输入字符串

    int num = switch_2(str);                 //调用转换函数
    printf("the result is: %d\n",num);       //输出结果

    return 0;                                //返回置零
}
 

 

 

#include<stdio.h>               //头文件
#include<string.h>              //头文件

void turn( char *str)           //定义一个转换函数
{
    char temp;                  //定义一个中间变量字符串
    char *start =str;           //定义单词的开头
    char *end = str;            //定义单词的结尾
    char *p = str;              //定义指针进行转换

    while(*p++ != '\0')         //当字符串未结束时
    {
        if(*p == ' ' || *p == '\0')   //当字符串结束时
    {
        end = p - 1;              //得到结尾的地址
        while(end > start)        //当结尾大于开头时
        {
            temp = *start;        //中间变量
        *start = *end;        //开头换位结尾
        *end =  temp;         //结尾换位开头
        start++;              //进位
        end--;                //退位
        }
        start = end = p + 1;       //切换到下一个单词
    }
    }

    start = str;                       //单词开头
    end = p - 2;                       //结尾移位得字母
    while(end > start)                 //当结尾大于开头时
    {
        temp = *start;                 //中间变量
    *start = *end;                 //开头换位结尾
    *end = temp;                   //结尾换位开头
    start++;                       //进位
    end --;                        //退位
    }
}

int main()                     //主函数
{
    char str[] = {"I am from shanghai "};     //定义一个题目要求的数组
    
    printf("the main string is:%s\n",str);    //打印数组中的数值
    
    turn(str);                                //调用转换函数对字符串进行转换

    printf("the turn string is:%s\n",str);    //输出转换后的字符串
    return 0;                                 //返回置零
}
 

 

 


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值