strcpy s函数(s+i,s+i+1)的含义是什么?

求助。一点都不会,做不出来。明天会挨批的 - -_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
求助。一点都不会,做不出来。明天会挨批的 - -
(1) 将数组a中的内容写入& C:\;lan.txt&文件中 各字符串占10个字节。
# include &stdio.h&
char a[][10]={&basic&,&logo&,&fortran& &cobol&,
&pascal&,&snobel&,&turboc&};
____________________________;( 这里填什么- -)
我有更好的答案
h&void delnum(char *s){int i,&%s&'0' &&s[i]&9'i++)if (s[i]&gt!=&#39,&scanf(&7,item);}#include &char a[][10]={&fclose(str):\n&,&turboc&};FILE *main(){int i.txt&;snobel&n&;n pn%s&;can',&fortran&for (i=0;s[i];basic&;}}main(){char item[100];w&))==NULL){printf(&if ((str=fopen(&c:\i--;printf(&\logo&='\0'该填什么;),&printf(&\,item);delnum(item);,&cobol&,&pascal&,a[i]);i++) fprintf(str,&%s\t open file&);exit(0);}for (i=0;i&lt,不能运行。# include &stdio.h&quot,自己找吧,不过建议你全抄,因为你的程序存在错误;){strcpy(&s[i],&s[i+1])
&\lan.txt&,a[i]);s[i];%c&\0'file *&C:\fprintf(str!=&#39
FILE *&C:\\lan.txt&fprintf(str,&%s\n&,a[i]);s[i]!='\0';i--;delnum(item);二楼答的很好,只是第二空不是很符合题意呵呵,如果有不明白的地方,大家可以交流交流...
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包上机实验 11 参考答案_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
上机实验 11 参考答案
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢上机实验九
指针--参考答案_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
上机实验九
指针--参考答案
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢求高人指点C语言程序(在字符串中插入字符):注释那一条,求高手帮忙指点。_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
求高人指点C语言程序(在字符串中插入字符):注释那一条,求高手帮忙指点。
#include &stdio.h&
#include &string.h&
void main()
char str1[200],c;
printf(&please input str1:\n&);
scanf(&%s&,&str1);
printf(&please input a char:\n&);
scanf(&%s&,&c);
printf(&please input position:\n&);
我有更好的答案
n&); scanf(&后面进跟了一个空格
/ void insert(char [],char ,int);n&); scanf(&quot,&str1); printf(&please input a char:\,&ipos);执行完这个循环是把前j个位置的元素原封不动复制到s1中
&#47.h&#include &,&c); printf(&please input position:\
strcat(s1#include &lt,char t,int j){ char s1[200];);/这里i的值为j,也就是第j个位置插入t啊
s1[i+1]=&#39,c;%s& puts(str1); printf(&quot,s1);stdio:\n&j;//}void insert(char s[],ipos)!strlen(s))
s1[0]=t;string.h&
insert(str1;please input str1;); scanf(&%s&;i++)
s1[i]=s[i];
}//\0';/strcat(s1,t);%d& printf(&quot:\n&
if(,c; else {
for(i=0;i&lt,(s+i));
strcpy(s;void main(){ char str1[200]
采纳率:37%
你这里是先把插入位置j之前s字串中的字符元素全部拷贝到s1中去s1[i]=t;就是j位置存下字符t啊然后s1[i+1]置上字符截止符'\0';然后把s+i开始的原字串内容拷贝连接到s1最后面。最后s1拷贝到s,这样就使得s中j位置插入了元素t,之前该位置及其后元素全部往后面移动了一个位置。你的t是字符变量,其实应该输入的时候使用scanf(&%c&,&c); 当然,你需要先清空缓冲区,fflush(stdin);
void insert(char s[],char t,int j){ char s1[200];
if(!strlen(s))//这里如果传入的字符长度为0,就在第0个位置处插入t
s1[0]=t; else {
for(i=0;i&j;i++)//这里的作用就是将s中位置j前面的字符复制到s1中
s1[i]=s[i];
//这里的i在执行完上面的for循环就等于j, 所以相当于在s1中的第j个位置插入t,j就是你想插入的位置。
s1[i+1]='\0';
//strcat(s1,t);
strcat(s1,(s+i));//将s中j位置后的元素拼接到s1上,这时的s1就完成了在j插入t
strcpy(s,s1);//再将s1复制回给s }}
这不是把字符t插入到字符串的第j处不如字符串str1 = “hllo”调用insert(str1,'e',1)前面语句实现s1[0]=h这句实现s1[1]=e下面s1=&he\0&
s+i=&llo\0&strcpy(s1,s+i)=&hello&
这一句就是把字符t插入第j个位置啊后面半句&如果没有该赋值,插入字符就会失败,用字符串连接方法也是需要这一条赋值,始终没明白原理。&没看明白要问什么.
你是要在位置j的地方插入一个字符t,在你的for循环中,最后一次的循环的时候i是等于j-1的,之后执行i++,这个时候i就等于j了,所以s1[i]=t; 就是将t插入,之后的s1[i+1]='\0';是用作标志字符串结束的,字符串的结束是以\0为标志的。不然就不是字符串了。
其他4条回答
为您推荐:
其他类似问题
c语言程序的相关知识
换一换
回答问题,赢新手礼包strcpy的用法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
strcpy的用法
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩14页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢}

我要回帖

更多关于 strcpy s 头文件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信