当前位置:首页 » 编程语言 » c语言动态字符串数组

c语言动态字符串数组

发布时间: 2022-02-16 11:26:38

① (c语言)如何将char**作为字符串数组,并且动态地添加字符串到其中

#include<stdio.h>
#include<stdlib.h>
//每行最多有多少个字符
#defineLINE_MAX_CHARS200
intmain()
{

FILE*fp;
inti=0,j;
char**lines=newchar*;

if((fp=fopen("E:/example.txt","r"))==NULL)
{
perror("Fileopenerror! ");
exit(1);
}

lines[i]=newchar;
while((fgets(lines[i],LINE_MAX_CHARS,fp))!=NULL)
{
++i;
lines[i]=newchar;
}
for(j=0;j<i;++j){
printf("%s",lines[j]);
}
return0;
}

② C语言:二维动态字符串数组问题

第一个问题:你用gets()时,在输入倒数第二个字符串结束时是不是输入了一个“回车”或“空格”确认输入的内容?此时gets()将这个“回车”或空格作为你输入的最后一个字符串赋给变量了。
第二个问题:
free()函数释放动态分配的内存空间;

③ 如何用C语言实现动态的字符串数组

分成取数字与取非数字2个函数较简单。get_v()取数字, get_o()取非数字。
#include <stdio.h>
char *get_v(char *a, char *b){
int i=0;
while( a[i]>='0' && a[i]<='9') {b[i]=a[i];i++;};
b[i]='\0';
strcpy(a,a+i);
return b;
}
char *get_o(char *a, char *b){
int i=0;
while( a[i]<'0' || a[i]>'9') {b[i]=a[i];i++;};
b[i]='\0';
strcpy(a,a+i);
return b;
}
int main()
{
char s[]="1234+4*5";
char b[10];
while(strlen(s)>=1){
get_v(s, b);
printf("%s\n",b);
if (strlen(s)<=0)break;
get_o(s, b);
printf("%s\n",b);
};

return 0;
}

④ 关于C语言动态数组

还是哪句话 那个问题贴里面我说的很清楚了

如果说你要计算输入数字的个数,用一个计数器就行了
#include<stdio.h>
int main()
{
int a = -1;
int n = 0;
printf("请输入数字,以0结束输入:");
scanf("%d", &a);
while(a != 0)
{
n++;
scanf("%d", &a);
fflush(stdin);
}
printf("一共输入了%d个数\n", n);
return 0;
}

////////////////////动态分配数组空间///////////////////////////////
#include<stdio.h>
int main()
{
int n;//假设这个为你输入的长度
scanf("%d", &n); //输入--------------------》看这里
int *a = new int[n]; //分配一个长度为N的内存空间,吧首地址给a。
//这里的a就(可以看做)是你需要的数组了
return 0;
}

⑤ c语言中怎么动态分配一个字符串数组

#include<stdio.h>
#include<stdlib.h>
#defineLENGTH20
intmain()
{
intstr_num;
scanf("%d",&str_num);
char(*str_arr)[LENGTH]=(char(*)[LENGTH])malloc(sizeof(char)*LENGTH*str_num);
for(inti=0;i<str_num;i++)
{
scanf("%s",str_arr[i]);
}
}

⑥ c语言字符串数组动态分配内存的问题(malloc()/calloc())

str=(char**)calloc(m,sizeof(char*));//分配m个char指针
for(inti=0;i<m;i++)
{
str[i]=calloc(1,100*sizeof(char));//为每个char指针分配100个char
}

⑦ C语言 有没有字符串数组,就是该数组的每一项各存储一个数组。并说明怎么动态赋值

#include<stdio.h>
voidmain()
{
char*a[3]={"hello","","world! "};
for(inti=0;i<3;i++)printf("%s",a[i]);
a[2]="windows98 ";
for(i=0;i<3;i++)printf("%s",a[i]);
}

⑧ 在c语言中如何实现数组的动态输入

头文件malloc.h

使用malloc来申请一个初始地址空间。

然后在循环输入的过程中不断检查初始空间是否已满,满了就是使用realloc来扩展地址空间。

最后,如申请的地址不需要使用了,且程序没有结束,需要用free来释放。

另外,使用malloc或realloc申请时,需要先判断下返回值是否为空,如有异常申请失败,用空指针直接使用,会造成程序错误。

下面简单示范:(初始申请2个字节,之后每次输入字符扩展1个字节,回车结束输入)

#include <stdio.h>

#include <malloc.h>

int main()

{

int len=2;

char *a=NULL,*aSave=NULL,c;

a=(char*)malloc(sizeof(char)*len);

if(!a)

return 1;

a[0]=0;

while(1)

{

c=getchar();

if(c==10)

break;

if(a[0]==0)

a[0]=c,a[1]=0;

else

{

aSave=realloc(a,sizeof(char)*len);

if(!aSave)

return 1;

a=aSave;

a[len-2]=c,a[len-1]=0;

}

len++;


}

printf("输入的字符串数组是: %s ",a);

free(a);

return 0;

}

⑨ c语言打印二维动态字符串数组

printf 后面参数,直接给变量,不要地址。
printf("a[0][1]:%c\n", &a[0][1]);这里 &a[0][1]应该写 a[0][1]

⑩ c语言 动态字符串数组

首先你的开辟数组内存过大,建议使用链表进行存储或者使用vector模板!上面是动态开辟二维数组的方式,你参考一下吧

热点内容
android开发发展 发布:2025-01-09 23:15:36 浏览:283
sw装配体怎么选择零件配置 发布:2025-01-09 23:13:17 浏览:209
如何进入华为的服务器 发布:2025-01-09 23:11:37 浏览:854
安卓日历每月提醒怎么设置 发布:2025-01-09 23:07:53 浏览:387
安卓手机qq怎么备份 发布:2025-01-09 23:07:12 浏览:958
kettle源码下载 发布:2025-01-09 23:01:36 浏览:733
casejava 发布:2025-01-09 22:56:56 浏览:699
oracle如何导出数据库 发布:2025-01-09 22:55:13 浏览:771
编程ppm 发布:2025-01-09 22:49:25 浏览:729
蒸汽之都侦探安卓按键在哪里 发布:2025-01-09 22:48:30 浏览:820