C Primer Plus 第6版 12章 练习9
来源:互联网 发布:红米4a支持网络频段 编辑:程序博客网 时间:2024/05/18 12:42
/* -- 第六章 09 编写一个符合以下函数的描述: 首先,询问用户需要输入多少个单词,然后接收用户输入的单词并显示出来,使用malloc 根据回答创建动态数组,该数组内含相应的指向char的指针(注意: 由于数组的每个元素都是指向char的指针,所以用于储存malloc()返回值的指针应该是一个指向指针的指针,且它所指向的指针指向char)。在读取字符串时,该程序应该把单词读入一个临时的char数组使用malloc()分配足够多的存储空间来储存单词,并把地址存入该指针数组(该数组中每个元素都是指向char的指针), 然后,从临时数组中把单词拷贝到动态分配的存储空间中,因此,有一个字符指针数组,每个指针都指向一个对象,该对象的大小正好能容纳被储存的特定单词。下面是运行示例: How may words do you wish to enter ? 5 Enter 5 words now: I enjoyed doing this exerise Here are your words: I enjoyed doing this exercise*/#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>//#define SIZE 40char **mal_ar(int n);int main(void){ int words, i, sum = 0; char **st; printf("How many words do you wish to enter? : "); scanf("%d", &words); getchar(); // 滤掉回车 printf("Enter %d words now:\n", words); st = mal_ar(words); printf("Here are your words: \n"); for(i = 0; i < words; i++) { puts(st[i]); sum += strlen(st[i]) + 1; } printf("共占用%d字节空间\n", sum); free(st); // 释放指针数组; return 0;}char **mal_ar(int n){ char **pt; char *temp; int len; // 给n个指针分配动态内存空间, 返回指针的指针 pt = (char**)malloc(n * sizeof(char *)); // 临时数组分配动态内存空间, 返回指针 temp = (char *)malloc(40 * sizeof(char)); for(int i = 0; i < n; i++) { // 输入存入临时数组 scanf("%s", temp); // 测量临时数组大小,分配正好存放的空间 len = strlen(temp); // 给每个指针指向的地址分配内存空间 pt[i] = (char *)malloc((len + 1) * sizeof(char)); strcpy(pt[i], temp); } free(temp); return pt;}
阅读全文
0 0
- C Primer Plus 第6版 12章 练习9
- C.Primer.Plus(第六版)第12章 编程练习
- 《C Primer Plus(第5版)中文版》第7章编程练习第9题
- 《C Primer Plus(第5版)中文版》第6章编程练习第1题
- 《C Primer Plus(第5版)中文版》第6章编程练习第14题
- 《C Primer Plus(第5版)中文版》第6章编程练习第15题
- 《C Primer Plus(第5版)中文版》第6章编程练习第16题
- 《C Primer Plus(第5版)中文版》第7章编程练习第6题
- C Primer Plus 第9章 函数 编程练习
- C++Primer Plus第6版 4.13编程练习答案
- C.Primer.Plus(第六版)第10章 编程练习
- C.Primer.Plus(第六版)第11章 编程练习
- C.Primer.Plus(第六版)第13章 编程练习
- C.Primer.Plus(第六版)第14章 编程练习
- C.Primer.Plus(第六版)第15章 编程练习
- C.Primer.Plus(第六版)第16章 编程练习
- C.Primer.Plus(第六版)第17章 编程练习
- C Primer Plus 练习 6-12
- Php中的Generator如何使用?
- 百度接口通过ip获取用户所在地
- [实训]ssh中struts2中的InputStream对象
- sublime安装插件例子
- Java注释和嵌入式文档----学习笔记
- C Primer Plus 第6版 12章 练习9
- C++ builder 中的 XMLDocument 类详解(18) NodeValue 与 NodeName 的读写区别
- Unity ipv6 Socket
- activemq 发布订阅模式
- ELK搭建
- MySQL学习笔记2-System administration(set password)II
- Web学习笔记_03
- Ubuntu下安装多个版本的opencv,以及切换使用
- LeetCode43——Multiply Strings(两个字符串表示的整数相乘)???