黑马程序员技术交流社区
标题:
gets()的意思是什么?这个程序应该怎样完成
[打印本页]
作者:
jiangenhao
时间:
2014-4-24 22:33
标题:
gets()的意思是什么?这个程序应该怎样完成
本帖最后由 jiangenhao 于 2014-4-26 00:09 编辑
下面程序的功能是将字符串s的所有字符传送到字符串t中,要求每传递三个字符后再存放一个空格,例如字符串s为"abcdefg",则字符串t为"abc def g",请选择填空。
#include "stdio.h"
#include "string.h"
main()
{
int j, k=0;
char s[60], t[100], *p;
p=s;
gets(p);
while(*p)
{ for (j=1; j<=3 && *p; 【1】) t[k]=*p;
if (【2】) { t[k]=' '; k++;}
}
t[k]='\0';
puts(t);
}
复制代码
作者:
251638256
时间:
2014-4-24 22:59
#include "stdio.h"
#include "string.h"
int main()
{
int j = 1, k = 0,i = 0;
char s[60], t[100] = { 0 }, *p;
gets(s);
while (1)
{
for (; i < 3*j; i++){
t[k++] = s[i];
}
t[k++] = ' ';
j++;
if (t[strlen(t) - 1] == s[strlen(s) - 1])
break;
}
puts(t);
}
:L重写了个
作者:
魅影穿眸
时间:
2014-4-24 23:10
gets的作用是获取字符串第一个答案为p++,k++,j++第二个答案为j == 4
作者:
gaoxinglei123
时间:
2014-4-24 23:14
#include "stdio.h"
#include "string.h"
int main()
{
int j, k=0;
char s[60], t[100], *p;
p=s;
gets(p);
while(*p)
{ for (j=1; j<=3 && *p; p++,j++,k++) t[k]=*p;
if (!((k+1)%4)) { t[k]=' '; k++;}
}
t[k]='\0';
printf("string is %s",t);
return 0;
}
复制代码
楼主 按你要求填的空。。真有一种重写的冲动。。
作者:
blz01003hm
时间:
2014-4-24 23:14
感觉你那程序死循环
重写了个你参考下
#include<stdio.h>
#include<string.h>
int main(void){
char s1[]="abcdefg";
char s2[]="\0";
int length=0,i=0,j=0;
length=strlen(s1);
s2[0]=s1[0];
for(i=1,j=1;i<length;++i,j++){
if(i%3==0){
s2[j]=' ';
j++;
}
s2[j]=s1[i];
}
puts(s2);
return 0;
}
作者:
jiangenhao
时间:
2014-4-26 00:09
整明白了 魅影穿眸更接近标准化 就是没有注释 谢谢大家
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2