zoukankan      html  css  js  c++  java
  • c语言字符串处理

    1)c语言字符串:

    #include <stdio.h>

    #include <string.h>

    int main(int argc, char *argv[]) {

        char ch[] = {'a', 'b', 'c', ''};

        char ch1[] = {'x', 'y', 'z'};

        printf("%s ", ch1);

        //输出xyzabc,因为是从内存地址中由高到低的输出直到

        //先定义的在高地址,后定义的在低地址

        //char ch[] = "abc"; 这样不会出现问题

        puts(ch);

        puts(&ch[1]);

        //输出abc,可以自动换行

        gets(ch);

        puts(ch);

        //使用gets会给出一个警告

        //不安全:数组长度是100,但是如果你输入了120个字符,存在越界

        //可以接受空格

        strcat(ch, ch1);

        puts(ch);

        //strcat(oldstr, newstr);

        //older的长度要足够保存下oldstr+newstr

        //newstr 把oldstr的最后一个字给覆盖了

        

        return 0; 

    }

     //字符串的输入输出

     #include <stdio.h>

     int main(int argc, char *argv[]) {

    char ch[] = "ias";

    //查看字符串用for比较麻烦,可以用%s输出一个字符串

    //从给定的地址开始,一直输出字符,直到遇到就停止来

    printf("%s ", ch);

    //输出ias

    printf("%s ", &ch[1]);

    //输出as

    char str3[10];

    // 从键盘上接受一个字符串,保存在以str为首地址的字符数组中

    scanf("%s", str3);

    printf("%s", str3);

    //如果以%s格式进行输入的话,注意空格问题

    //如果输入的字符串有空格,则空格之后的字符无法被接收保存

    //输入的字符串的长度要小于数组的长度

    return 0;

     }

    2)c语言指针:

    // int *ptr = &x; 其实就是下面的两条语句组合:

    //    int *ptr;

    //    ptr = &x;

    /*野指针不能随便修改内容,容易引发系统奔溃,老师这样说的不知道是不是真的,有点怀疑,难道做编译器的人都是傻子吗

    int *p;

    *p = 98;

    //二级指针和多级指针

    /*

    //指针求逆序数组

    /*#include <stdio.h>

    void swap(int *i, int *j){

        int temp;

        while(i < j){

            temp = *i;

            *i = *j;

            *j = temp;

            i++;

            j--;

        }

    }

    int main(int argc, char *argv[]) {

        int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

        int *i = &a[0];

        int *j = &a[9];

        swap(i, j);

        for(int i = 0; i <= 9; i++){

            printf("%d ", a[i]);

        }

        return 0;

    }

    3)fget和fputs函数使用:

    安全的fgets函数

     char ch [10];

     fgets(ch, sizeof(ch), stdin);

     可以根据数组长度自动截取适当的长度保存

     printf("%s ", ch);

     fgets(数组名,数组大小,标准键盘输入);

     从输入缓冲区读取一个字符串保存到字符数组中

     当输入的字符串的长度大于数组长度,此时自动吧数组的最后一个元素变成

     当输入长度小于数组长度时则会接受一个换行

     strlen(ch)不包含

     fputs是不会自动换行的

     puts可以自动换行

     使用gets()和scanf()都是不安全的

     gets()可以接收空格,但scanf()不可以接收空格空格之后不接受

     printf()  %s 不可以自动换行

     puts()       可以自动换行

     fputs        不可以自动换行

  • 相关阅读:
    Django:重定向
    Django:使用get_template、render实现读取数据并传递数据
    Django:读入html中的数据
    Django:urls配置路由地址
    Django:基础知识-创建模块
    HTMLTestRunner美化
    python2 selenium
    Jmeter检查点
    Jmeter集合点
    jmeter的三种参数化方式
  • 原文地址:https://www.cnblogs.com/coolcold/p/4674356.html
Copyright © 2011-2022 走看看