zoukankan      html  css  js  c++  java
  • C语言回顾-字符串指针

    1.字符串指针

    char *变量名="字符串内容";

    char ch='b';

    char *p1=&ch;

    char *str="C Language";//表示s指向字符串的首地址

    str="ssssssss";//字符串存在常量区,可以修改s指向的内容

    *(str+2)='X';//可以*(str+2)这样访问,但是不能修改。常量区保存的内容都是只读的

    常见误区:

    char *str2=NULL;

    printf("%s",str2);//这样写是错误的,str2没有分配内存空间去存储变量

    解决办法:

    char *str2=NULL;

    str2=malloc(100);

    printf("%s",str2);

    或者:

    char ch3[100];

    char *str2=ch3;

    printf("%s",str2);

    2.二维字符数组

    char ch2[3][10]={"abc","def","kkk"};

    3.char类型的指针数组和字符数组的区别

    char *name[3]={"abc","def","kkk"};//一维指针数组,每个元素存储字符串首地址

    #include <stdio.h>
    
    int main(int argc, const char * argv[]) {
        char *name[3]={"abc","def","kkk"};
        for(int i=0;i<3;i++){
            printf("%s
    ",*(name+i));//name[i]
        }
    
        return 0;
    }

    1)字符串指针char *ss="abc";指向可以改变ss="ssssss";

    2)字符数组char s1[]="abc"; s1是一个常量,不能被赋值,s1="Helll";是错误的,

    4.字符串排序

    //
    //  main.c
    //  字符串排序
    //
    //  Created by fanyafang on 15/11/4.
    //  Copyright © 2015年 itcast. All rights reserved.
    //
    
    #include <stdio.h>
    #include <string.h>
    
    void sortString(char *arr[],int length){
        char *temp="";
        //选择排序
        for(int i=0;i<length;i++){
            for(int j=i+1;j<length;j++){
                if(strcmp(arr[i], arr[j])>0){
                    temp=arr[i];
                    arr[i]=arr[j];
                    arr[j]=temp;
                }
            }
        }
    }
    
    int main(int argc, const char * argv[]) {
        char *arr[]={"China","America","Flash","Toop"};
        
        for(int i=0;i<4;i++){
            printf("%s
    ",arr[i]);
        }
        printf("
    ");
        sortString(arr,4);
        
        for(int i=0;i<4;i++){
            printf("%s
    ",arr[i]);
        }
    
        return 0;
    }

     

  • 相关阅读:
    基于802.11Fuzz技术的研究
    mips体系堆栈回溯分析与实现
    MIPS架构上函数调用过程的堆栈和栈帧
    IDA Pro使用技巧
    工控安全入门分析
    工控安全入门之Ethernet/IP
    使用PLC作为payload/shellcode分发系统
    qemu基本使用
    IDA Pro使用(静态分析+动态调试)
    逆向安全基础之IDA使用简介
  • 原文地址:https://www.cnblogs.com/fanglove/p/4936372.html
Copyright © 2011-2022 走看看