笔记本电脑死机硬盘灯不亮插上硬盘就死机怎么会回事

欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 3407 人关注过本帖
标题:[求助]如何输出字符数组中部分内容?
等 级:新手上路
&&问题点数:0&&回复次数:4&&&
[求助]如何输出字符数组中部分内容?
有一个数组a[] = { "12345" },需要向屏幕中输出前4位,即"<FONT color=#ff".
怎么做?请大虾们赐教! 谢谢啦!
搜索更多相关主题的帖子:
等 级:新手上路
帖 子:1146
for(i=0;i&4;i++) printf(&%c&,a[i]);
等 级:版主
帖 子:481
专家分:10
恩,我来实现一个字符串截取的程序,而且在合法范围内任意截取。这应该是楼主所需要的吧。
#include "stdio.h"
#include "conio.h"
#include "string.h"#define ARRMAX
sStrCat(char* Src,int Start,int End);int main(void)
/*截取的开始位置及结束位置*/
/*字符串的长度*/
SrcString[ARRMAX];
/*存储字符串的数组*/
pSrc = SrcS
puts("Input the Source String:\n");
scanf("%s",pSrc);
/*得到字符串*/
SrcLen = strlen(pSrc);
/*得到字符串长度*/
if(SrcLen & ARRMAX)
/*传递给 sStrCat 函数的字符串必须正确,字符串除错是客户调用程序的责任*/
puts("\nString Length long more than 128 or Null!");
printf("\nString Length: %d\nSource string : %s\n",SrcLen,pSrc);
puts("\nIntercept Start Point:");
scanf("%d",&Start);
/*得到截取的起始点*/
puts("\nIntercept End Point:");
scanf("%d",&End);
/*得到截取的终止点*/
/*验证截取的起始点和结束点,起始点大于结束点,或起始点或终止点大于数组允许的最大长度或数组当前长度,
或起始点终止点小于 0,或终止点小于 0 */
if(Start & 0 || Start & End || End & SrcLen)
puts("\nStart or End point Error!");
printf("\nIntercept String : %s\n",sStrCat(pSrc,Start,End));
}/*取出由起始点到终止点(包括起始点和终止点)之间的字符,允许起始点和终止点相同*/
sStrCat(char* Src,int Start,int End)
sRetStr[ARRMAX];
TTime = End - Start + 1;
/*得到截取的字符的个数,包括起始点和终止点,那么字符数应该是终止点减去起始点加1*/
Start = Start - 1;
/*因为字符数组由下标0开始,所以 Start 要减一个1 */
while(T & TTime)
sRetStr[T++] = Src[Start++];
sRetStr[T] = '\0';
return sRetS
欢迎加入ASP.NET MVC 技术讨论群(新群:)
等 级:新手上路
帖 子:19
等 级:版主
帖 子:481
专家分:10
以下是引用白蚂蚁23在 17:04:05的发言:
呵呵,是说多了。
但是只对题目给出程序,意义也不大。
我们可以扩展它。对么?
欢迎加入ASP.NET MVC 技术讨论群(新群:)
版权所有,并保留所有权利。
Powered by , Processed in 0.042340 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved怎么用指向字符串的指针打印字符串的前两个字母(c)
01.把字符串的每个字符存入一个数组array(每种语言都不一样,学者自己克服吧)
02.然后是*p=array[0];输出*p和*(p+1),就行了
03.例:php中:
04.字符串$a="b,c,d,e,f,g,h";
05.然后用函数explode()操作字符串:为$array()=explode(",",$a);实现把字符串中的每个字符当作一个数组元素,
06.然后把指针指向数组的开头,接着用指针输出就行了;
说的不太具体,请见谅
其他答案(共1个回答)
//将四个函数编成四个子函数了,在一个主函数里调用,你若需要,分别取出来用也可以。以下源代码,VS2005编译通过。
//1.从键盘输入一行字符,分别统计...
void main(void){
c=getchar();
if(c&=97&&c&=122) putchar(c-32...
#include&stdio.h&
void main()
int i=0,j=0,k=0;
char a[100];
printf(&#034;请输入一个...
可以用条件格式,先选中整个工作表,具体在Excel的“开始”-“样式”-“条件格式”-“突出显示单元格规则”-“等于”,然后在对话框里输入要查...
#include &iostream&
char* solve(char *s, char *t)
大家还关注
cout<<"sum="<<
cout<C++条件语句if的问题 我写了一段C+...
两道C语言选择题 以下程序的输出结果是_...
<a href="/b/.html" target="_blank" class="trackEventQuestion" trackType="PC_detail" trackAction="skip" trackDes="PC_everybody_attention" title="C语言问题:这个值不是100么,怎么变成15 #include
#define min(x,y) (x)C语言问题:这个值不是100么,怎么变成...
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区高手解释下为什么只有字符数组可以这样输出?_java吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:610,237贴子:
高手解释下为什么只有字符数组可以这样输出?收藏
char c[]={'1','2','3'};String f[]={"12","34","56"};System.out.println(c.toString());System.out.println(c);System.out.println(f.toString());System.out.println(f);输出的结果[C@195dd5b123[Ljava.lang.S@1f78b68[Ljava.lang.S@1f78b68
南昌java教育机构选甲骨文培训,0基础,0学费入学,毕业包薪资,3个月入门到精通,先就业后付款,不用担心学费.
字符数组=string。
这个需要看源代码。两个toString方法调用的是父类即Object的toString方法,返回的是:getClass().getName() + "@" + Integer.toHexString(hashCode());即hashCode()相关的代码。而println(f)和println(c)是两个重载的方法,前者是println(Object x),,先调用String s = String.valueOf(x);s此时已经是hashCode值了,然后把s变成数组写入流中输出;后者是println(char x[]),该方法中没进行其他转换,把x放入流中输出。建议用ctrl+鼠标点击方法名看方法内容
char c[]={'1','2','3'};System.out.println(c);方法最终调用的是PrintStream类的write(char buf[])方法,见下图:textOut是BufferedWriter对象,代表着向控制台输出信息的输出流对象.charOut是OutputStreamWriter对象,是用来将字节转换成字符的转换流对象.textOut包装了charOut.textOut.write(buf);调用到以下方法:该方法就是将char数组的每个字符挨个输出到控制台中啦.总结一句话,其System.out.println(c);就是将c数组的每个字符挨个输出到控制台中.
tostring作祟
tostring作祟
再写全一点吧.System.out.println(c.toString());最终调用的是System.out对象的write(String s)方法:同样,textOut是BufferedWriter对象,代表着向控制台输出信息的输出流对象.charOut是OutputStreamWriter对象,是用来将字节转换成字符的转换流对象.textOut包装了charOut.textOut.write(s);调用到以下方法:这个方法主要是要获取cb和nextChar的值,cb是char[]类型,其实就是你在System.out.println(c.toString());中的c.toString()的返回值,通过上面的截图可以看到,将这个返回值传到上面截图所示的write(String s, int off, int len)方法中的s参数,最后这个传进去的Strig会转化为一个char[],也就是变量cb啦.nextChar是int类型,代表着cb数组的长度,之后又调用flushBuffer()方法:根据截图可以看到,接着又调用out.write(cb, 0, nextChar)方法:然后又调用se.write(cbuf, off, len);方法,se是StreamEncoder对象,StreamEncoder类直接继承Writer类.se对象包装的输出流对象就是控制台,所以se.write(cbuf, off, len);方法就是将char[]类型的cb数组,即System.out.println(c.toString());中的c.toString()的返回值输出到控制台中.其实前面的只是跟踪源代码,貌似楼主要的是System.out.println(c);为什么能打印出123为什么的答案,好吧,根据分析,可以肯定:char[]重写了toString()方法,这就是你要的最终答案啦.
你可以按住ctrl点进不同println进去看看就知道了
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或1618人阅读
在C&#43;&#43;中,如果cout一个字符数组的话,那么它会沿着这个地址,一直输出这个字符串,直到遇到'\0',例如:
&char*c=&cadn\0hello&;
&cout&&c&&
输出的结果是:cadn
如果我们自作聪明的想输出第一个字符的地址,例如这样输出:
&cout&&&c[0]&&
不幸的是,这样输出的结果依旧不是我们需要的地址。
但是,如果我们回归到C语言的话,例如用printf的话,如下:
&printf(&%x\n&,&c[0]);
幸福的事情发生了,输出的结果是:
的确是字符串的首地址,但是,如果我们要输出字符串的地址,难道就这一种方法吗?难道我们就不可以用我们C&#43;&#43;上的cout达到我们的效果吗?
原因:c是靠%s,%x,%p来区分指针表达式&a[0]的输出形式的;c&#43;&#43;没有这个&#26684;式控制,只能按一种形式输出,对char*类型的指针&#20540;就理解为串输出,所以必须对这个指针表达式做类型转换处理。
char c='a';
cout&&” &c:”&&&c&&
输出的仍然不是字符变量c的地址。
在C&#43;&#43;中,字符串是以空终止符('/0')结尾的字符数组,通过字符串中第一个字符的指针访问字符串。也就是说,字符串的&#20540;是字符串中第一个字符的(常量)地址。如下的面3种形式表示:
char *str=&string&;
charstr2[]=&string2&;
charstr3[]={'s','t','r','i','n','g','3','/0'};
cout&&&line 1:str=&&&str&&
cout&&&line 2:str2=&&&str2&&
cout&&&line 3:str3=&&&str3&&
运行可知,这3行的输出就是保存的字符串的&#20540;,而并非我们认为的地址。那么,我们可以联系到前面&c,其实这就是一个char *的变量,所以,输出的自然就应该是字符串的&#20540;。可是,&c保存的字符串是没有终止符的,因此输出的也就是乱码了。
最近,在读到《C&#43;&#43;程序设计教程》(第4版)第12章的时候,我才解决了这个疑惑。实际上,C&#43;&#43;标准库中I/O类对输出操作符&&重载,在遇到字符型指针时会将其当做字符串名来处理,输出指针所指的字符串。既然这样,我们就别让他知道那是字符型指针,所以得进行类型转换,即:希望任何字符型的指针变量输出为地址的话,都要作一个转换,即强制char
*转换成void *,如下所示:
cout&&&static_cast&void *&(&c)=&&&static_cast&void*&(&c)&&
cout&&&static_cast&void *&(str)=&&&static_cast&void*&(str)&&
此时,可以看到输出的结果就是char类型变量和字符串变量的地址了。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:93325次
积分:2236
积分:2236
排名:第15219名
原创:132篇
转载:17篇
(6)(1)(5)(4)(5)(3)(2)(5)(3)(11)(10)(11)(16)(38)(14)(5)(2)(9)

我要回帖

更多关于 笔记本固态硬盘插口 的文章

 

随机推荐