当前位置:首页 » 编程语言 » c语言如何输入长度
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言如何输入长度

发布时间: 2022-05-19 22:33:04

‘壹’ c语言怎么输入任意长度的一个数组

首先 严格来说 不可能出现任意长度。 内存是有限的 超出一定长度后,不可能存的下,虽然这个值可能是超级大的,但总有限度。

其次,所谓的任意长度,其实就是可变长数组。
那么,在事先不知道数组规模下,就要靠输入,来确定数组大小了。
重点在于,要开辟多大的数组来存

一般有这么几种情况
1 直接开一个足够大的。 比如 虽然不知道有多大,但最大不超过1000个,那就可以直接开个1000元素的数组。
2 动态分配, 使用malloc动态分配内存。
当出现可能的不够情况,用realloc重新分配。

‘贰’ c语言编程序,输入字符串的有效长度,并输出该字符串

int
i=0,*j;
定义了一个整型指针变量j,j++会跳过一个整型数据空间(4)
如:输入数据为:abcdefg
j=a;
此时j指向a所在的地址
j++;
j跳过四个字节,j指向e所在地址,因此,你的统计会不准确。
之所以输出21,只能说,你的程序运行中,扫描内存中的数据是以\0结尾的,而只有找到21*4的位置才发现\0,这是运行时的情况,不是必然的。
修改成char
*j;就好了。这样j++会跳过一个字符型数据空间(1),才能正确遍历数组!

‘叁’ c语言如何输入任意长度的字符串数组

方法:
1)逐个元素进行赋初值。例如:
char
a[12]={'g','o','o','d','
','m','o','r','n','i','n','g'};
采用这种方式对字符数组初始化,可以不包括结束标志,这是合法的。但在对数组整体输出时系统无法判断字符串是否结束,输出结果会存在问题。因此通常人为的加上‘\0’。上例做如下改动更合理:
char
a[13]={'g','o','o','d','
','m','o','r','n','i','n','g','\0'};
2)用字符串常量来初始化字符数组:
char
a[]="good
morning";或
char
a[]={"good
morning"};
采用这种方式初始化字符数组,可以不指定数组长度,但数组的实际长度比字符串常量的长度多1,因为系统会在最后添加字符串结束标志‘\0’;若指定了数组的长度,如果字符串常量的长度大于数组长度会出错,如果小于数组长度,系统会将未赋值的元素全部充成‘\0’。

‘肆’ 如何输入任意长度的字符串用c语言来写,不用C++和String类

要输入任意长度字符串,就需要使用动态内存

也就是逐个元素读入,当不够的时候重新分配。

以下是一个简单的思路, 以 作为字符串结束标记。

#include<stdio.h>
#include<stdlib.h>
intmain()
{
intlen=100;
char*p=NULL;
intcnt=0,c;
p=(char*)malloc(len);
while((c=getchar())!=' ')
{
p[cnt++]=c;
if(cnt>=len-1)
{
len+=100;
p=(char*)realloc(p,len);//不够,重新分配内存。
}
}
p[cnt]=0;
puts(p);
free(p);
return0;
}

‘伍’ c语言如何输入限制长度的字符串

这个可以从缓冲区来做
有一个输入缓冲区,不管是gets或者for循环用scanf单个输入,输入后先进入缓冲区,在从缓冲区读入
你可以定义缓冲区的长度,让他不进入缓冲区,直接读入
具体做法我不知道,你网络一下吧

‘陆’ 如何用C语言写程序:输入一个长度小于100的字符串,统计标点符号个数,并输出

在英文字符中,只要不是空格数字或字母,就都属于是标点或符号的范围,所以这样的话,整个程序就比较好写了:

#include<stdio.h>

#istdio.<ctype.h>

int main()

{ int n=0;

char c;

while((c=getchar())!=' ')

if(c!=' '&&!isalnum(c))n++;

printf("%d ",n);

return 0;

}

‘柒’ [C语言]我想问下 怎么控制输入字符串的长度比如输入六位以上

可以弄个循环,如果字符串长度不满足条件就始终循环,举个例子:

charstr[100]={0};
scanf("%s",str);
while(strlen(str)<=6)
{
printf("输入字符串太短(需6个字符以上),请重新输入!");
scanf("%s",str);
}
.........................
..........................

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

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

  2. 用getchar一个一个得到字符,直到文件结束。

  3. 核心代码实现:

intn=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;//字符串末尾置为