zoukankan      html  css  js  c++  java
  • strlwr,strupr函数

    函数原型:extern char *strlwr(char *str)

                        extern char *strupr(char *s)

    参数说明:str为要转换的字符串。
            
    所在库名:#include <string.h>
      
    函数功能:将字符串str中的大(小)写字母转换成为小(大)写字母,其它的不进行转换。
      
    返回说明:返回转换后的字符串的指针。

    其它说明:暂时无。

    实例:

    以strlwr为例,strupr类似。

    #include <string.h>
    #include 
    <stdio.h>
    int main()
    {
        
    char str[100]="SKY2098,persist IN DOING AGAIN!";
        
    char *strtemp=NULL; 
        strtemp
    =strlwr(str);   //将字符串str中的大写字母转换为小写字母
        printf("The string str converted is:  %s  ", strtemp);
        
    return 0;
    }

    在VC++ 6.0 编译运行:

    成功地将字符串SKY2098,persist IN DOING AGAIN!中的大写字母全部转换为小写字母。

    这里需要注意的一个问题:

    如果我们在定义一个指针变量str时,这样就会出现内存异常:

    #include <string.h>
    #include 
    <stdio.h>
    int main()
    {
        
    char *str="SKY2098,persist IN DOING AGAIN!";   //定义字符型指针变量
        char *strtemp=NULL; 
        strtemp
    =strlwr(str);   //将字符串str中的大写字母转换为小写字母
        printf("The string str converted is:  %s  ", strtemp);
        
    return 0;
    }

    在VC++ 6.0 编译通过,但是运行出错:

     

    这个内存读写异常的问题出在哪里呢?

    学过孙鑫老师的VC++视频教程的朋友应该能够很快反应过来,其实就是一个字符串指针和字符串常量的问题。

    当我们定义一个字符型指针变量时,它只是引用了该字符串的内存地址,并不能通过这个引用来修改字符串本身。但是,我们可以通过这个引用来修改修改这个字符串的内存地址,也就是再一次把这个字符指针变量的值赋值费另一个字符指针。

    当当我们定义了一个字符串常量的时候,通过这个常量能够对这个字符串进行修改等操作,但是它的内存地址是不能够修改的。

  • 相关阅读:
    ubuntu远程windows桌面
    spring boot 给返回值加状态 BaseData
    spring boot 拦截异常 统一处理
    IntelliJ IDEA spring boot 远程Ddbug调试
    IntelliJ IDEA 常用插件
    spring boot 请求地址带有.json 兼容处理
    spring boot 接口返回值去掉为null的字段
    spring boot 集成disconf
    Spring boot 自定义拦截器
    Linux下安装MySQL
  • 原文地址:https://www.cnblogs.com/lgh1992314/p/5835369.html
Copyright © 2011-2022 走看看