当前位置: 代码迷 >> C语言 >> 关于char*
  详细解决方案

关于char*

热度:475   发布时间:2006-11-07 16:16:12.0
char* 不就是相当于char[]字符数组吗?
----------------解决方案--------------------------------------------------------
#include<stdio.h>
int main()
{
char *s;
scanf("%s",&s);
printf("%s",s);
return 0;
}

一运行就报错
是不是需要使用getchar()来接收字符?
char ch;
for(ch =getchar();ch!=EOF;ch = getchar())
{
.........
}
但是如何将每个字符加入到char*中,我不太懂,请指教!

[此贴子已经被作者于2006-11-7 16:36:46编辑过]


----------------解决方案--------------------------------------------------------
以下是引用wfd2004在2006-11-7 16:16:12的发言:
char* 不就是相当于char[]字符数组吗?

但没有给它分配空间.
----------------解决方案--------------------------------------------------------

如果是这样char* s = new char[];
可是还是照样出问题!


----------------解决方案--------------------------------------------------------
以下是引用wfd2004在2006-11-7 16:34:02的发言:
#include<stdio.h>
int main()
{
char *s;
scanf("%s",&s); //这里不要加&
printf("%s",s);
return 0;
}

一运行就报错
是不是需要使用getchar()来接收字符?
char ch;
for(ch =getchar();ch!=EOF;ch = getchar())
{
.........
}
但是如何将每个字符加入到char*中,我不太懂,请指教!


#include<stdio.h>
int main()
{
char *s;
scanf("%s",s);
printf("%s",s);
return 0;
}


----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{
char *s[30]; // 声明为数组要分配空间
scanf("%s",s); // s表示指向的字符数组s的首地址 s已经是地址咯 %s 接受空格前的串 但是输出时要靠回车换行
}
----------------解决方案--------------------------------------------------------
以下是引用ziyi555在2006-11-7 21:27:24的发言:
#include<stdio.h>
void main()
{
char *s[30]; // 声明为数组要分配空间
scanf("%s",s); // s表示指向的字符数组s的首地址 s已经是地址咯 %s 接受空格前的串 但是输出时要靠回车换行
}

char s[30];


----------------解决方案--------------------------------------------------------

谢谢各位的指点!
我知道用字符数组可以解决问题,那么是不是char*就不可以接收字符串呢?


----------------解决方案--------------------------------------------------------
#include<stdio.h>
main()
{
char s[30],*c;
c=s;
scanf("%s",c);
printf("%s",c);
return 0;
}
----------------解决方案--------------------------------------------------------
哦,谢谢版主!
----------------解决方案--------------------------------------------------------
  相关解决方案