c语言题,求每步的解释

#include<stdio.h>#include<stringh>main(){intij=0,t;charc1[100],c2[100];gets(c1);scanf... #include<stdio.h>
#include<stringh>
main()
{
int i j=0,t;
char c1[100],c2[100];
gets(c1);
scanf("%d",&t);
for(i=0;i<strlen(c1);i++)
if(i!=t)c2[j++]=c1[i];
c2[j]="\0;
puts(c2);
}
展开
伊雪倾城44
2011-06-23
知道答主
回答量:29
采纳率:0%
帮助的人:20.9万
展开全部
#include<stdio.h>这个呢,是说明之后代码中出现的函数都包含在stdio.h的文件中,这个文件中一般包含的就是输入输出printf scanf等函数,所以在main函数中就不用重复定义了
#include<stringh> 这个纠正一下应该是string.h 你看到这个可以条件反射之后的代码中很有可能是关于字符串的,一般取字符串的时候前面都必须加一个string.h 否则编译是不成功的
main() main函数这个应该就不用说了吧~^_^
{
int i j=0,t; 首先定义三个整型变量 j赋值为0 i t现在还是没有赋值的情况,计算机中默认为任意值
char c1[100],c2[100]; 定义两个字符数组,大小均为100个单位,看吧,跟字符串有关系了
gets(c1); 输入字符串 并把输入的内容存在c1中
scanf("%d",&t); 输入t,t是整型变量,所以用%d
for(i=0;i<strlen(c1);i++) 一个for循环 从i为0开始,第二个strlen(c1)为c1数组的长度,这个包含在之前定义的头文件string.h中
if(i!=t)c2[j++]=c1[i];这句话是重点,分析一下,j++是先使用再加一,这句话相当于if(i!=t){c2[j]=c1[i];j++;}意思就是如果i不等于t那么把c1的值赋值给c2,然后j向后移动一位
c2[j]=‘\0’; 这个就是在最后加上结束符号
puts(c2); 输出c2字符串
}
362257996
2011-06-22 · TA获得超过190个赞
知道小有建树答主
回答量:117
采纳率:0%
帮助的人:101万
展开全部
两个头文件不用说了,第二个应该是string.h
main() 主函数
int i j=0,t; 定义三个整型变量
char c1[100],c2[100]; 定义两个字符数组,用来储存字符串
gets(c1); 输入字符串c1
scanf("%d",&t); 输入t
for(i=0;i<strlen(c1);i++) strlen(c1)表示字符串c1的长度,这个函数在头文件string.h里
if(i!=t)c2[j++]=c1[i]; 把提出第t个字符的c1字符串存到c2里面
c2[j]="\0; 这里应该是c2[j]=‘\0’,在最后加上结束符号
puts(c2); 输出字符串c2
最后你还得加上return 0;因为你的主函数默认的是int型的。
这个程序的功能就是,输入一串字符,然后剔除第t个字符后,再输出出来,下面是修改后的程序
#include<stdio.h>
#include<string.h>
main()
{
int i j=0,t;
char c1[100],c2[100];
gets(c1);
scanf("%d",&t);
for(i=0;i<strlen(c1);i++)
if(i!=t)c2[j++]=c1[i];
c2[j]='\0';
puts(c2);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
惟妙惟肖且透亮灬福星p
2011-06-22 · 超过24用户采纳过TA的回答
知道答主
回答量:85
采纳率:0%
帮助的人:56.5万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式