C语言实现用户输入
2016-05-06 22:48
453 查看
用户输入一个字符串然后回车表示结束。因为用户在输入的过程中长度是不确定的,所以要求自己使用的循环写的更好。在这里自己写了一个代码,效率不高,相对来说如果能模拟出C++中的vector向量可能会好一些。
#include <stdio.h> #include <string.h> #include <string> #include <stdlib.h> char *S,*temp; int main(){ int length = 0; /*仅仅给S分配一个内存空间*/ temp=S=(char*)calloc(1,sizeof(char)); while(scanf("%c",S+length)){ if(*(S+length)!='\n'){ length++; /*对其重新分配一个比以前多一个的空间*/ S=(char*)calloc(length+1,sizeof(char)); for(int i = 0;i < length; i++){ S[i]=temp[i]; } ///要将原来的那个空间释放掉 free(temp); temp=S; }else { break; } } for(int i = 0;i <= length;i++){ printf("%c",*(S+i)); } free(S); return 0; }
相关文章推荐
- C++中 模板Template的使用
- C++ STL vector容器学习
- nyoj36 最长公共子序列
- 【Effective C++读书笔记】篇二(条款02~条款04)
- C++中的placement new
- C语言实现多态
- 国外程序员整理的 C++ 资源大全
- Problem I: C语言实验——打印数字图形
- 动态创建对象
- More Effective C++----(24)理解虚拟函数、多继承、虚继承和RTTI所需的代价
- 斐波那契数列的非递归c语言实现以及斐波那契数列的应用
- C++ Primer 学习笔记_44_STL实践与分析(18)--再谈迭代器【下】
- C++ Primer 学习笔记_43_STL实践与分析(17)--再谈迭代器【中】
- C++ Primer 学习笔记_42_STL实践与分析(16)–再谈迭代器【上】
- c++ STL 工程实践的15条建议
- C++ Primer 学习笔记_41_STL实践与分析(15)--先来看看算法【下一个】
- C++ Primer 学习笔记_40_STL实践与分析(14)--概要、先来看看算法【上】
- C++ Primer 学习笔记_39_STL实践与分析(13)--multimap与multiset
- C++ Primer 学习笔记_38_STL实践与分析(12)--容器的综合应用:文本查询程序
- C++ Primer 学习笔记_37_STL实践与分析(11)--set类型