有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)。

本文详细解析了C语言中使用字符数组和指针处理字符串的方法,包括如何通过循环遍历字符串、识别单词边界并动态分配内存来存储各个单词。通过实例展示了如何将连续的字符分割成独立的单词,并利用指针进行高效的数据操作。

char str[] ="wo cao shui chu de jiba lanti";

    char *p[5] = {};//存储单词的字符串指针

    char temp[6] ="";//临时存放单词的字符数组

    int i = 0;//while的增量

    int j = 0;//temp中的下标

    int k = 0;//指针字符数组的下标

    while (i <= strlen(str)) {

        if (str[i] != ' ' && str[i] != '\0' ) {

            temp[j] = str[i];//如果不是空格和"\0"str中的值赋给temp

            j++;

        }

        if (str[i] == ' ' || str[i] == '\0') {

            temp[j] ='\0';//当遇到空格或者'\0',表示单词结束,'\0'赋给temp.

            p[k] = malloc(j + 1);//p[k]动态分配内存

            strcpy(p[k], temp);//temp里面的单词拷贝到p[k].

             k++;

            j = 0;//temp的下标制零

        }

        i ++;

    }

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

        printf("%s\n",p[i]);//打印单词

        free(p[i]);//释放内存

        p[i] = NULL;//是指针指向一个无效的地址

    }

    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值