比如说我在linux里打这样的command
printf '\0Gur\n\0Dhvpx\n\0Oebja\n\0sbk\n\twhzcf\n\tbire\n\tgur\n\tynml\n\tqbt.' |
./sort
它能把\0Gur,\0Dhvpx,\0Oebja。。。都输入到char **word里,以\n区分不同字符串,但是能够包括\0,而且数组的长度是任意的
貌似有点难度,求大神帮助
“任意长度”实际上是做不到的,即使所用的软件平台没有限制,硬件环境也不允许。所以“任意长度”应当理解为在一个很大的空间之内没有限制地输入字符串而不用事先确定长度。鉴于这种理解,可以定义一个输入函数,先动态申请一个较大的空间,直接向其内输入字符串;输入完毕后检测其长度,再按实际需要申请一个合适大小的空间,把刚才输入的字符串拷贝到这个合适大小的空间里,再把原先申请的大空间释放。举例代码如下:
//#include "stdafx.h"//If the vc++6.0, with this line.c语言如何输入任意长度的字符串数组
鉴于这种理解,可以定义一个输入函数,先动态申请一个较大的空间,直接向其内输入字符串;输入完毕后检测其长度,再按实际需要申请一个合适大小的空间,把刚才输入的字符串拷贝到这个合适大小的空间里,再把原先申请的大空间释放。举例代码如下:\/\/#include "stdafx.h"\/\/If the vc++6.0, with this ...
c语言中怎么实现任意长度字符串输入
int n=0,k=100; \/\/初始化,字符串长度为0,字符串空间长度为100 char * s2 = NULL,s1 = (char *)malloc(100); \/\/初始化字符串空间 if (s1 == NULL) return; \/\/内存分配失败,返回 while((c=getchar())!=EOF){ \/\/判断是否到文件结束,一个个读取字符 ...
C语言怎么实现可变长度字符串
char * p = (char*)malloc(sizeof(char)*n)别忘了free C++和C#的string类型在最低层实际也是利用类似方法去做的 另外有一种 char str[SIZE_MAX]也有人喜欢用 realloc函数 只是不太推荐,主要原因是以前系统上这个函数操作会出问题,因为内存的原因 ...
C语言怎么实现字符串的任意输入
使用gets函数即可实现输入任意字符串。1、gets函数:原型:char * gets(char * buffer);功能:从stdin流中读取字符串,直至读到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为 \\0 空字符,并以此结束字符串;说明:当使用unic...
c语言怎么输入任意长度的一个数组
其次,所谓的任意长度,其实就是可变长数组。那么,在事先不知道数组规模下,就要靠输入,来确定数组大小了。重点在于,要开辟多大的数组来存 一般有这么几种情况 1 直接开一个足够大的。 比如 虽然不知道有多大,但最大不超过1000个,那就可以直接开个1000元素的数组。2 动态分配, 使用malloc动态...
C语言程序设计实现任一字符和字符串长度的输出,其中字符和字符串内容由...
输入任意长度字符串,并输出打印字符串及其长度。include<stdio.h>#include<malloc.h>#include<conio.h>char *input();\/\/输入任意长度字符串(可包含空格),回车确认,返回输入的字符串int getLen(char *str);\/\/通过指针获取字符串长度void meError(void *p);\/\/内存申请失败int main(){ char ...
c语言中,怎么定义一个随意大小的字符串呢?
include <stdio.h>#include<malloc.h>#include<string.h>#define maxsize 10int main(){ char *str,*strSave,cSave; int i,n=2,strSize; strSize=maxsize; str=(char *)malloc(sizeof(char)*strSize); printf("输入任意长度字符串:"); for(i=0;i<strSize;i++...
请问在c语言中输入一串字符串(字符串长度不定,随意输入),赋值到数组...
if(str[j]>='0'&&str[j]<='9') {printf("包含数字,请重新输入。\\n\\n");break;} if(str[j]<'A'||(str[j]>'Z'&&str[j]<'a')||str[j]>'z') {printf("包含其他字符,请重新输入。\\n\\n");break;} if(j==i-1) b=false;} } printf("输入的字符串为:%s\\n",str);...
c语言中函数里面怎么输入字符串数组
在C语言中,字符串是以字符数组方式保存的,于是字符串数组可以用二维字符数组存储。输入时,每次输入字符串数组的一个元素(一行),根据需要,使用scanf或gets进行输入。如:char str[10][100]; \/\/定义字符串数组,供10行,每行最多100个字节数据。int i;for(i = 0; i < 10; i ++)scanf("...
c语言字符串数组怎么输入和输出呢
在C语言中,有两个函数可以在控制台(显示器)上输出字符串,它们分别是:puts():输出字符串并自动换行,该函数只能输出字符串。printf():通过格式控制符%s输出字符串,不能自动换行。除了字符串,printf() 还能输出其他类型的数据。这两个函数相信大家已经非常熟悉了,这里不妨再演示一下,请看下面的...