c语言动态输入,c语言动态输入数组

dfnjsfkhak 4 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言动态输入问题,于是小编就整理了2个相关介绍c语言动态输入的解答,让我们一起看看吧。

  1. c语言中怎么实现任意长度字符串输入?
  2. C语言中怎么一次性的输入多行(不确定是多少行的)字符串,然后把它们全反过来输出,比如输入wo s?

c语言中怎么实现任意长度字符串输入?

其实核心就是实现动态数组,无论字符串多长,都能够储存。

用get一个一个得到字符,直到文件结束

c语言动态输入,c语言动态输入数组-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

核心代码实现:

int n=0,k=100; //初始化,字符串长度为0,字符串空间长度为100 char * s2 = NULL,s1 = (char *)malloc(100); //初始化字符串空间 if (s1 == NULL) return; //内存分配失败,返回 while((c=getchar())!=EOF){ //判断是否到文件结束,一个个读取字符 if(k<=n){ //当前字符串长度大于等于字符串空间长度时 k*=2; //长度增长2倍 s2 = (char *)realloc(s1,k); //重新分配内存 if(s2 == NULL){ //内存分配失败 free(s1); //释放已分配内存 return; }else{ //内存分配成功 s1=s2; } } s1[n++]=c; //字符串赋值字符 } s1[n]=0; //字符串末尾置为\0

C语言中怎么一次性的输入多行(不确定是多少行的)字符串,然后把它们全反过来输出,比如输入wo s?

#include

c语言动态输入,c语言动态输入数组-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

#include

int main()

{

c语言动态输入,c语言动态输入数组-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

char* buf = NULL; //动态分配 //char buf[***]; //指定长度

char ch;

int len = 0,i;

到此,以上就是小编对于c语言动态输入的问题就介绍到这了,希望介绍关于c语言动态输入的2点解答对大家有用

标签: 字符串 输入 长度