c语言固定长度的字符串,【分享】C语言动态长度字符串

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

很多朋友都用惯了高级语言的字符串变量,就是定义一个字符串变量,直接可以赋值,但在C语言里没有字符串变量这样的概念,只有字符数组,因此,只能定义一个固定数组,或用malloc动态分配一个固定的空间,但始终都受固定的限制,很多人都在思索,到底可以实现像String变量一样动态输入字符串吗?昨晚给一个朋友回答用:malloc( 常量 )还是觉得不够爽,思索了一阵,写出了这个真正实现无长度限制字符串输入函数,特和各位分享!

函数原型:getStr()

返回值:字符数组指针(输入的字符数组首地址)

具体用法如下:

#include "stdio.h"

#include "conio.h"

char *getStr()

{

char ch='\0';

char *str="";

long i=0;

int keyflushSize = 10;  /*缓冲区大小*/

while((ch=getche())!='\r')

{

if( !strlen(str)%keyflushSize )

{

str = strcpy((char*)malloc(strlen(str)+keyflushSize),str);

}

if( ch!='\b' )

{

str[i]=ch;

str[++i]='\0';

}

else if( i>0 )

{

str[--i]='\0';

putch(' ');

putch('\b');

}

rewind(stdin);    /*清空键盘缓冲区里的无用字符*/

}

return str;

}

main()

{

char *str;

str = getStr();

puts("\n\n\n Auto length String:");

puts(str);

getch();

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266885.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目复审——Beta阶段

小组的名字和链接优点缺点,Bug报告最终名次颜罗王team http://www.cnblogs.com/LDLYMteam/p/9142408.html增加了单词学习功能,还有具体单词的音标解释,增加了pk功能,功能实现较为全面,想法新颖有特色1.pk功能还不是很完善偶尔会出…

解决sharepoint2010的多行文本框的插入图片—【从sharepoint】的disabled问题

大家发现sharepoint2010的多行文本框的插入图片有个—【从sharepoint】插入图片的功能,但是看到的disabled。如下图: 怎么办呢?通过查找资料才知道原来可以这样解决 在这里我们新建一个自定义列表:【test】,并新建一个…

c语言16进制按10进制输出,C语言编程:写一个函数,输入一个16进制数,输出相应的10进制数。...

满意答案chengexin2013.05.27采纳率:59% 等级:11已帮助:10599人#include#include#include#define N 1000char str[N];int a[N],b[N];int main(void){void zsh();long ycl();int i,n;do{printf("请输入一个十六进制数:\n");scanf…

用ASP.NET Core MVC 和 EF Core 构建Web应用 (一)

系统必备 .NET Core 2.0.0 SDK 或更高版本。已安装 ASP.NET 和 Web 开发工作负载的 Visual Studio 2017 15.3 版或更高版本。创建Web应用程序 打开 Visual Studio 并创建一个新 ASP.NET Core C# web 项目名为”ContosoUniversity”。 从文件菜单上,选择新建 > 项…

黑盒法测试c语言,黑盒测试用例练习题.pdf

黑盒测试用例设计练习题1、准考证号码对招干考试系统“输入学生成绩”子模块设计测试用例。招干考试分三个专业,准考证号第一位为专业代号,如:1-行政专业,2-法 专业,3-财经专业。行政专业准考证号码为 :110001&#xf…

HTML基础(格式标签)

<p></p> &#xff1a;段落标签 &#xff0c;默认属性为alignleft <p alignright>第一段 </p> <p alignleft>第二段 </p> <br> &#xff…

c语言equal,C ++中的ratio_equal()示例

在本文中&#xff0c;我们将讨论C STL中ratio_equal()函数的工作&#xff0c;语法和示例。什么是ratio_equal模板&#xff1f;ratio_equal模板内置在C STL中&#xff0c;该模板在头文件中定义。ratio_equal用于比较两个比率。该模板接受两个参数&#xff0c;并检查给定的比率…

//获取本地IP地址和对端IP地址

1 //获取本地IP地址2 CHAR * GetLocalIpAdrr(int fd)3 {4 struct sockaddr_in stHost;5 memset(&stHost, 0, sizeof(stHost));6 7 #ifdef _WIN328 INT iLen sizeof(stHost);9 #else 10 socklen_t iLen sizeof(stHost); 11 #endif 12 CHAR * szHostIp…

第一个Django应用程序_part1

一、查看Django是否安装 参考文档&#xff1a;https://docs.djangoproject.com/en/1.11/intro/tutorial01/ 如果Django已经安装&#xff0c;可以看到安装的版本号&#xff0c;如果没有安装则会看到“No module named django”的错误。 MacBook-Pro:~ h$ python3 -m django --ve…

rsa加密c语言源码库,RSA加密算法源代码C语言实现.doc-资源下载在线文库www.lddoc.cn...

RSA加密算法_源代码__C语言实现.docRSA 算法 1978 年就出现了这种算法&#xff0c;它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作&#xff0c;也很流行。算法的名字以发明者的名字命名Ron Rivest, AdiShamir 和 Leonard Adleman。但 RSA 的安全性一直未…

Apollo2.5摄像头安装

前言&#xff1a;在Apollo美研团队和长沙CiDi团队的支持下&#xff0c;最近完成了Apollo推荐的摄像头AR023ZWDR(Rev663F12)调试&#xff0c;在这里对Apollo的笔记做一个补充&#xff0c;希望以后的开发者不用在踩我们踩过的坑。 在本博客中提到的补充文件在我的百度网盘中&…

Linux下查看出口IP

使用的几个其他的命令&#xff0c;好像这个都不太靠谱。 但也想写一个很简单的程序就在服务器端的request里面能取得IP&#xff0c; 这个也有人已经在公网上有这样的程序啊 所以这个就简单了 wget http://members.3322.org/dyndns/getipcat getip 这样试试吧。

r语言教程w3c,R语言 数据库

数据是关系数据库系统以规范化格式存储。 因此&#xff0c;要进行统计计算&#xff0c;我们将需要非常先进和复杂的Sql查询。 但R语言可以轻松地连接到许多关系数据库&#xff0c;如MySql&#xff0c;Oracle&#xff0c;Sql服务器等&#xff0c;并从它们获取记录作为数据框。 一…

HTML 文档流和文本流的理解

文本流&#xff0c;概括地说其实就是一系列字符&#xff0c;是文档的读取和输出顺序&#xff0c;也就是我们通常看到的由左到右、由上而下的读取和输出形式&#xff0c;在网页中每个元素都是按照这个顺序进行排序和显示的&#xff0c;而position属性可以将元素从文本流脱离出来…

CCNA实验(一)

无线局域网&#xff08;WLAN&#xff09;回顾 使用无线射频信号、载波监听多路访问/冲突避免、半双工。 无线AP相当于以太网的HUB。 有些频段是受限的。 无线信号遇到的问题&#xff1a; l 反射 l 散射 l 信号吸收&#xff08;比如说穿墙&#xff09; 无线标准 l ITU-R l …

linux中postfix(基于源码)的邮件系统

一、安装前的准备工作&#xff1a; 首先配置yum服务器&#xff0c;安装dns 1、安装所需的rpm包&#xff0c;这包括以下这些&#xff1a; httpd, php, php-mysql, mysql, mysql-server, mysql-devel, openssl-devel, dovecot, perl-DBD-MySQL, tcl, tcl-devel, libart_lgpl, li…

UE4 集成讯飞听写插件

搞了几天&#xff0c;有些坑记录一下。 3个方面的知识需要学习 1、制作UE4插件 2、引入第三方库 3、讯飞听写的api 一看是参考 https://blog.csdn.net/u012793104/article/details/78067937 http://doc.xfyun.cn/msc_windows/%E8%AF%AD%E9%9F%B3%E5%90%AC%E5%86%99.html API&am…

c51单片机有几个终端语言,吃过大亏,才知道要从51单片机入手

原标题&#xff1a;吃过大亏&#xff0c;才知道要从51单片机入手在这里&#xff0c;我就不说什么是单片机了&#xff0c;而是说说怎样学单片机&#xff0c;就我个人而言先学51,因为这个单片机在中国市场上发展了几十年了&#xff0c;现在工程中用的比较多的也是MCS-51, 它的资料…

c primer plus(第五版)读书笔计 第二章(3)

// 2-2.c --------把两个fathoms换算成英尺#include <stdio.h>int main (void){int feet, fathoms;fathoms 2;feet 6 * fathoms;printf ("There are %d feet in %d fathoms !\n",feet,fathoms);printf ("Yes , I said %d feet !\n",6 * fathoms);r…

云计算-openstack简介

云计算云计算是一种按使用量付费的模式&#xff0c;这种模式提供可用的、便捷的、按需的网络访问&#xff0c; 进入可配置的计算资源共享池&#xff08;资源包括网络&#xff0c;服务器&#xff0c;存储&#xff0c;应用软件&#xff0c;服务&#xff09;&#xff0c;这些资源能…