| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1519 人关注过本帖
标题:关于char*
只看楼主 加入收藏
wfd2004
Rank: 1
等 级:新手上路
帖 子:116
专家分:0
注 册:2006-11-7
收藏
 问题点数:0 回复次数:22 
关于char*

我想问一下用char*从命令行接收一个字符串可不可以?
例如;
#include<stdio.h>
int main ()
{
char *s;
scanf("%s",&s);
return 0;
}

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

搜索更多相关主题的帖子: char 
2006-11-07 14:50
aisqa
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-11-3
收藏
得分:0 
应该这样吧?
#include<stdio.h>
int mian ()
{
char s;
scanf("%s",&s);
return 0;
}
不好意思,会错义了,以为你想接收一个字符。scanf函数用法如下:(粘贴过来的,有点乱,凑合一下)

int scanf(const char *format, arg_list)
arg_list 要输入的参数变量列表,多个变量以逗号分隔
format 参数输入的格式,定义格式为:%[flags][width][.perc] [F|N|h|l]type

规定数据输入方式,具体如下:
1.type 含义如下:
d 有符号10进制整数 i 有符号10进制整数 o 有符号8进制整数 u 无符号10进制整数
X/x 无符号16进制整数 F/f 浮点数 E/e 用科学表示格式的浮点数 g 使用%f和%e表示中的较精确者来表示浮点数 G 同g格式,但表示为指数 c 单个字符 s 字符串 % 输入百分号本身
p 输入一个指针,near指针表示为:XXXX far 指针表示为:XXXX:YYYY n 相连参量应是一个指针,其中存放已写字符的个数

2.flags 规定输入格式,取值和含义如下:
无 右对齐,左边填充0和空格 + 左对齐,右边填充空格 - 在数字前增加符号 + 或 - 一个空格 只对负数输入符号 # 当type=c,s,d,i,u时没有影响 type=o,x,X时,在数值前增加'0'字符 type=e,E,f时,总是使用小数点 type=g,G时,除了数值为0外总是显示小数点

3.width 用于控制输入数值的宽度,取值和含义如下:
n(n=1,2,3...) 宽度至少为n位,不够以空格填充 0n(n=1,2,3...) 宽度至少为n位,不够左边以0填充 * 格式列表中,下一个参数还是width

4.prec 用于控制小数点后面的位数,取值和含义如下:
无 按缺省精度显示 .0 当type=d,i,o,u,x时,没有影响 type=e,E,f时,不显示小数点 .n(n=1,2,3...) 当type=e,E,f时表示的最大小数位数 type=其他,表示显示的最大宽度 .* 格式列表中,下一个参数还是width

5.F|N|h|l 表示指针是否是远指针或整数是否是长整数
F 远指针 n 近指针 h 短整数或单精度浮点数 l 长整数或双精度浮点数

[此贴子已经被作者于2006-11-7 15:01:42编辑过]

2006-11-07 14:52
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
语法上没有错误.
mian ()写错了,main()

倚天照海花无数,流水高山心自知。
2006-11-07 14:54
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用aisqa在2006-11-7 14:52:59的发言:
应该这样吧?
#include<stdio.h>
int main ()
{
char s[12];
scanf("%s",&s);
return 0;
}

这个就错了.


倚天照海花无数,流水高山心自知。
2006-11-07 14:57
jqbbccn
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-10-17
收藏
得分:0 
main()
{
char *s;
printf("输入*S:");
scanf("%s",s); //去掉地址符"&"就可以啦(因为s是指针,指针就是地址,哈哈~)
printf("%s\n",s);
}
可以啊

2006-11-07 15:04
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用jqbbccn在2006-11-7 15:04:08的发言:
main()
{
char *s;
printf("输入*S:");
scanf("%s",s); //去掉地址符"&"就可以啦(因为s是指针,指针就是地址,哈哈~)
printf("%s\n",s);
}
可以啊

你试着输入一些字符,看能不能输出...


倚天照海花无数,流水高山心自知。
2006-11-07 15:06
aisqa
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-11-3
收藏
得分:0 
对,我和楼上的看法差不多。

char *s; 这一句只是定义一个指针,它指向一个字符型变量,
使用scanf("%s",s); 之后应该就是把这个字符串的首地址付给 s。以后就可以通过S 来找到这个字符串了
2006-11-07 15:09
aisqa
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-11-3
收藏
得分:0 
#include <stdio.h>
main()
{
char * s;
printf("shuru string:\n");
scanf("%s", s);
printf("%s\n", s);
}
这一个是可以正常运行的。
我试验过了。
但是,下面这个不行。
#include <stdio.h>
main()
{
char s;
printf("shuru string:\n");
scanf("%s", &s);
printf("%s\n", s);
}
为什么呢?

[此贴子已经被作者于2006-11-7 15:19:47编辑过]

2006-11-07 15:16
zhuxiaoan
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2006-6-1
收藏
得分:0 
在C语言中,,没有"字符串"变量,,只有字符变量,,如果想得到一个字符串,,只能通过数组的形式或者指针.
基础的东西不能丢
2006-11-07 15:40
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
#include <stdio.h>
main()
{
char s;
printf("shuru string:\n");
scanf("%s", &s);
printf("%s\n", s);
}

倚天照海花无数,流水高山心自知。
2006-11-07 15:42
快速回复:关于char*
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.104897 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved