⑴ c语言字符数组函数可以这样声明吗char zf(char (*p)[30])
函数声明没有问题,p是个指针,指向了有30个元素的字符数组。
⑵ 请问c语言怎么定义字符串数组并用printf()函数显示出来
定义:char str[1000];
输入:scanf("%s",str);或是gets(str);前一个没有空格,后一个可以包含空格
输出:printf("%s",str);或是puts(str);
⑶ C语言问题,用函数处理字符串数组的输入,跪求大侠帮帮忙
你的程序主要的问题是因为你定义的时候,形参是一个指向指针的指针,但是这样一来,该指向指针的指针就不仅仅是二维数组的概念了,也可以是一个int变量的指针的指针,也就是说每一维的长度都不确定了,所以也就不能用gets函数来实现,我把你的程序做了一下改动,已经通过vc6的编译运行了,结果正确
#include <stdio.h>
void gettt(char **s);//从键盘输入三个字符串
int main(void)
{
int i;
char ar[3][81];
gettt(ar);
for(i=0;i<3;i++)
puts(ar[i]);
return 0;
}
void gettt(char **s)
{ //在不修改以上代码的情况下,以下代码要怎么写才能完成函数功能?
//以下代码错在哪里,错误的原因,应该怎么修改?麻烦帮在行末注释下?
int i;
char str[3][81];//声明一个局部变量数组
puts("请输入三个字符串:");
for(i=0;i<3;i++)
gets(*(str+i));
memcpy(s,str,sizeof(str));//将str为首地址,长度为sizeof(str)的这段内存空间数据复制给以s为首地址,sizeof(str)为长度的内存空间
}
⑷ c语言中函数里面怎么输入字符串数组
在C语言中,字符串是以字符数组方式保存的,于是字符串数组可以用二维字符数组存储。
输入时,每次输入字符串数组的一个元素(一行),根据需要,使用scanf或gets进行输入。
如:
char str[10][100]; //定义字符串数组,供10行,每行最多100个字节数据。
int i;
for(i = 0; i < 10; i ++)
scanf("%s",str[i]);//输入10行字符串数据。
⑸ C语言中字符数组及字符串处理函数
一、字符数组的定义
一维字符数组:用于存储和处理1个字符串,其定义格式与一维数值数组一样。
char str[20];
二维字符数组:用于同时存储和处理多个字符串,其定义格式与二维数值数组一样。
char country[10][20];
country[i]:第i个字符串
二.字符数组的初始化
字符数组的初始化.
1.可以通过为每个数组元素指定初值字符来实现。
char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};
char str[ ]={"I am happy"}; 可以省略花括号,如下所示
char str[ ]="I am happy";
char country[10][20]={“china”,”japanese”,……};
注意:上述这种字符数组的整体赋值只能在字符数组初始化时使用,不能用于字符数组的赋值,字符数组的赋值只能对其元素一一赋值,下面的赋值方法是错误的
char str[15];
str="I am happy";
strcpy(str, "I am happy");
不是用单个字符作为初值,而是用一个字符串(注意:字符串的两端是用双引号“”而不是单引号‘’括起来的)作为初值。
‘a’ “a”区别
三、字符数组的引用
字符数组的逐个字符引用,与引用数值数组元素类似。
(1)字符数组的输入
除了可以通过初始化使字符数组各元素得到初值外,也可以使用getchar()或scanf()函数输入字符。
例如:
char str[10];
…… for(i=0; i<10; i++)
{ scanf(\"%c\", &str);
fflush(stdin); /*清除键盘输入缓冲区*/
}
这里只是一部分具体你查看这里:http://www.eehome.cn/thread-95295-1-1.html