黑马程序员技术交流社区
标题:
找错,不用指针如何定义字符串数组?
[打印本页]
作者:
Hi围城
时间:
2014-3-18 11:43
标题:
找错,不用指针如何定义字符串数组?
本帖最后由 Hi围城 于 2014-3-22 19:24 编辑
#include <stdio.h>
int main()
{
struct student
{
int age;
char name[2][3];
// char *name;
};
struct student s;
s.age = 26;
s.name[0] = "阿";
s.name[1] = "三";
printf("%s %d\n", s.name, s.age);
return 0;
}
作者:
Hi围城
时间:
2014-3-18 17:50
不用指针,如何定义并输出name,求解答。
作者:
周宇华
时间:
2014-3-20 18:54
改错:
#include <stdio.h>
int main()
{
struct student
{
int age;
char name[7];
// char *name;
};
struct student s;
s.age = 26;
strcpy(s.name, "阿三");
printf("%s %d\n", s.name, s.age);
return 0;
}
复制代码
作者:
Hi围城
时间:
2014-3-20 22:26
strcpy,我没见过
作者:
周宇华
时间:
2014-3-20 23:39
s.name[0] = "阿";
s.name[1] = "三";
这两行代码有问题。"阿"和"三"占3个字节,是字符串不是字符。
而字符串数组除了声明时初始化其余不能直接赋值。
strcpy函数是字符串拷贝功能。不用系统的话也可以自己实现一个简单的类似方法,如下:
char* myStrcpy(char *d, char *s)
{
char *r=d;
while((*d++=*s++));//单字符拷贝,到结束符后停止
return r;
}
复制代码
作者:
Hi围城
时间:
2014-3-22 19:25
:)我在琢磨琢磨
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2