c语言输入字符数组
A. c语言给字符型数组录入数据
第一次进入循环时,在条件判断语句处中断,等待getchar返回
你输入a后,必须按下回车键才能让getchar接收到键盘输入
这时,ch
=
(getchar()
==
'a')
//这里ch为真
这时while以ch的值为条件,判断为真,进入循环内部,虽然你这里是没有循环内部语句块,但要理解while的流程,它在运行完内部语句块后,又继续检查你的条件语句,ok,现在getchar直接返回了,因为上一次输入时输入了a,但也包括了回车键入的ascii码10,所以这时ch
=
(10
==
'a'),即ch为假,循环退出,而你再输出ch的话,也就是假,即0了
B. c语言中的字符数组的输入
这个关系到内存里面的栈问题。。
当你
char
s[10];
时候,内存会在栈上分配地址,因为要位对齐,分配的是12个字节的,内存,大至如下,其中
C0
FF
12
00
,是上一个栈地址。0012ffc0
CC
CC
CC
CC
CC
烫烫烫.
0012FF79
CC
CC
CC
CC
CC
CC
CC
烫烫烫.
0012FF80
C0
FF
12
00
输入
12
个
时,
C0
就已经
占用了,
会被清为
00
,但是
0012ff00
还是一个可以
使用的栈地址,
当13
个时,
ff
也给占用了。。因此会出现
程序错误,
内存溢出
是要避免的,破坏数据,也会产生错误,
如果,你的程序时
,
int
i[10];
char
s[10];
scanf("%s",s);
printf("%s\n",s);
你再输入
40个也没事,s
会占用i的地址,只要不破坏
栈地址就行了。不过溢出这个
还是要检查的,程序
安全问题
C. C语言 计算出的数据输入字符串数组
//计算字符串中相同字符的个数
#include "stdio.h"
#include "string.h"
int count_str_same(char * p,char ch);
int main()
{
int same_ch;
char a[100];
char c;
printf("请输入字符串:");
gets(a);
printf("请输入欲统计的重复字符:");
c = getchar();
same_ch = count_str_same(a,c);
printf("该字符串中字符%c重复%d次\n",c,same_ch);
return 0;
}
int count_str_same(char * p,char ch)
{
char * q = p;
int m = 0;
while(* q != '\0')
{
if(ch == * q)
m++;
q++;
}
return m;
}还可以将函数写在头文件中,并复制到include文件夹中,然后通过头文件加载。
D. c语言中函数里面怎么输入字符串数组
在C语言中,字符串是以字符数组方式保存的,于是字符串数组可以用二维字符数组存储。
输入时,每次输入字符串数组的一个元素(一行),根据需要,使用scanf或gets进行输入。
如:
char str[10][100]; //定义字符串数组,供10行,每行最多100个字节数据。
int i;
for(i = 0; i < 10; i ++)
scanf("%s",str[i]);//输入10行字符串数据。
E. c语言怎么用scanf输入字符串
c语言用scanf输入字符串:
char s[300];
scanf("%s",s);
这个语句只能输入不包含空格和跳格键的字符串并且以回车符结束输入。
F. c语言字符串数组怎么输入和输出呢
在C语言中,有两个函数可以在控制台(显示器)上输出字符串,它们分别是:
puts():输出字符串并自动换行,该函数只能输出字符串。
printf():通过格式控制符%s输出字符串,不能自动换行。除了字符串,printf() 还能输出其他类型的数据。
这两个函数相信大家已经非常熟悉了,这里不妨再演示一下,请看下面的代码:
#include <stdio.h>
int main(){
char str[] = "http://c.biancheng.net";
printf("%s ", str); //通过字符串名字输出
printf("%s ", "http://c.biancheng.net"); //直接输出
puts(str); //通过字符串名字输出
puts("http://c.biancheng.net"); //直接输出
return 0;
}
运行结果:
http://c.biancheng.net
http://c.biancheng.net
http://c.biancheng.net
http://c.biancheng.net
注意,输出字符串时只需要给出名字,不能带后边的[ ],例如,下面的两种写法都是错误的:
printf("%s ", str[]);
puts(str[10]);
(6)c语言输入字符数组扩展阅读:
由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。
字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。
G. c语言如何输入带字符的数组
设置该数组为字符型。例如:char
a[3][5]。这样做的话数组当中的所有存储的都被处理为字符。所以那个1,2,3之类的都变成字符了。不是数字。
如果想要让1,2,3变成对应的数字,让他们减去字符‘0’即可。
H. 关于C语言字符串数组输入问题
这当然不行啊,char *a[11];表示定义了11个字符型指针,每个指针还没有指向有存储空间的内存地址。
如果想要能运行需要申请内存加上
a[0]=(char*)malloc(100);
I. 如何在C语言中用scanf输入数组
#include
main()
struct
int num;
char name[20];
char sex;
int age;
stu[5];
int i;
for(i=0;i<5;i++)
printf("请输入信息 ");
scanf("%d",&stu[i].num);
scanf("%s",&stu[i].name);
scanf("%c",&stu[i].sex); //在%c之前加一个空格
scanf("%d",&stu[i].age);
for(i=0;i<5;i++)
printf( "*%s*",stu[i].name);
(9)c语言输入字符数组扩展阅读:
函数 scanf() 是从标准输入流stdin[1](标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。
J. C语言字符数组输入
#include<stdio.h>
intmain()
{
charss[100][100];
chars='1';
intn=0,m=0;
while(s!=' ')
{
s=getchar();
if(s!='')
ss[n][m++]=s;
else
{
ss[n++][m]='