有没有人能帮我详细的解释一下这个C语言程序的每条语句的作用? 30
#include"stdio.h"main(){intx,j=0;chara[]="12Bou*nd678le";chara1[20];for(x=0;a[x];x++)...
#include"stdio.h"
main()
{ int x,j=0;
char a[]="12Bou*nd678le";
char a1[20];
for(x=0;a[x];x++)
if(a[x]>='a'&&a[x]<='z'||a[x]>='A'&&a[x]<='Z'&&a[x]=='\0')
a1[j++]=a[x];
puts(a1); } 展开
main()
{ int x,j=0;
char a[]="12Bou*nd678le";
char a1[20];
for(x=0;a[x];x++)
if(a[x]>='a'&&a[x]<='z'||a[x]>='A'&&a[x]<='Z'&&a[x]=='\0')
a1[j++]=a[x];
puts(a1); } 展开
4个回答
展开全部
#include"stdio.h" //因为程序中用到puts函数因此必须包含这个头文件,可百科puts函数了解
main() //应当写成void main()表示没有返回值,否则程序最后要以return 0;结尾
{ int x,j=0; //定义整型变量2个,其中j初始值为0
char a[]="12Bou*nd678le"; //开设数组存放字符串,字符串用双引号括起来,数组正好能放下
char a1[20]; //再开个20个元素的数组,每个元素存放一个字符,为字符型数组,可存放字符串
for(x=0;a[x];x++) //循环条件a[x]!=0,x的起始值0,每次循环加1,循环条件是a[x]不是字符串结尾符(如果是结尾符则结束循环),字符串存放时"12Bou*nd678le"除了这些字符外,最后会多存个0作为结尾符
if(a[x]>='a'&&a[x]<='z'||a[x]>='A'&&a[x]<='Z'&&a[x]=='\0') //条件语句,当前a[x]存放字符是否字母,分成大写和小写两部分进行判断,由于最后一个条件是判断是否字符串结尾符,与循环条件的判断重复,因此最后一个条件可以忽略(不会满足的),但这个条件写法有问题,应当写成if ( ((a[x]>='a')&&(a[x]<='z')) || ((a[x]>='A')&&(a[x]<='Z')) || (a[x]=='\0') )才对
a1[j++]=a[x]; //a1数组存放满足条件的字符(字母字符),并且a1数组尺寸加1,a1[j]=a[x]; j=j+1;整个循环完成将a数组中所有字母(大写或小写的)存放到a1数组中的功能
puts(a1); } //输出a1字符串到屏幕,但前面应当加一句a1[j]=0;用来结束a1字符串
main() //应当写成void main()表示没有返回值,否则程序最后要以return 0;结尾
{ int x,j=0; //定义整型变量2个,其中j初始值为0
char a[]="12Bou*nd678le"; //开设数组存放字符串,字符串用双引号括起来,数组正好能放下
char a1[20]; //再开个20个元素的数组,每个元素存放一个字符,为字符型数组,可存放字符串
for(x=0;a[x];x++) //循环条件a[x]!=0,x的起始值0,每次循环加1,循环条件是a[x]不是字符串结尾符(如果是结尾符则结束循环),字符串存放时"12Bou*nd678le"除了这些字符外,最后会多存个0作为结尾符
if(a[x]>='a'&&a[x]<='z'||a[x]>='A'&&a[x]<='Z'&&a[x]=='\0') //条件语句,当前a[x]存放字符是否字母,分成大写和小写两部分进行判断,由于最后一个条件是判断是否字符串结尾符,与循环条件的判断重复,因此最后一个条件可以忽略(不会满足的),但这个条件写法有问题,应当写成if ( ((a[x]>='a')&&(a[x]<='z')) || ((a[x]>='A')&&(a[x]<='Z')) || (a[x]=='\0') )才对
a1[j++]=a[x]; //a1数组存放满足条件的字符(字母字符),并且a1数组尺寸加1,a1[j]=a[x]; j=j+1;整个循环完成将a数组中所有字母(大写或小写的)存放到a1数组中的功能
puts(a1); } //输出a1字符串到屏幕,但前面应当加一句a1[j]=0;用来结束a1字符串
展开全部
#include"stdio.h" //表示包含头文件,双引号表示从当前目录开始查找头文件
main() //主方法,程序开始后运行的函数就是它
{
int x,j=0; //定义变量,并为变量j赋初值0
char a[]="12Bou*nd678le";//定义变量,并为其赋初值,字符串长度未指定,在以后可改变
char a1[20];//定义变量,并为其设置字符串长度20
for(x=0;a[x];x++)//for循环,变量x为0,当a[x]的值为'\0'时,终止循环,否则变量x的值+1
{
//if判断语句,当a[x]的值大于等于字符'a'和a[x]的值小于等于'z'或a[x]的值大于等于'A'和a[x]的值等于结束,则执行下面代码
if(a[x]>='a'&&a[x]<='z'||a[x]>='A'&&a[x]<='Z'&&a[x]=='\0')
a1[j++]=a[x];//赋值语句,将a[x]的值赋给a1[j++]
puts(a1); //输出字符串函数,将字符串变量a1的值输出到控制台
}
//return 0; 为提问者添加一下,因为主函数前没有返回值限定符,则取默认形式,返回值为int
//形,必须添加这一句,否则编译器会,或者在主函数前添加void限定符表示无返回值
}//程序结束
main() //主方法,程序开始后运行的函数就是它
{
int x,j=0; //定义变量,并为变量j赋初值0
char a[]="12Bou*nd678le";//定义变量,并为其赋初值,字符串长度未指定,在以后可改变
char a1[20];//定义变量,并为其设置字符串长度20
for(x=0;a[x];x++)//for循环,变量x为0,当a[x]的值为'\0'时,终止循环,否则变量x的值+1
{
//if判断语句,当a[x]的值大于等于字符'a'和a[x]的值小于等于'z'或a[x]的值大于等于'A'和a[x]的值等于结束,则执行下面代码
if(a[x]>='a'&&a[x]<='z'||a[x]>='A'&&a[x]<='Z'&&a[x]=='\0')
a1[j++]=a[x];//赋值语句,将a[x]的值赋给a1[j++]
puts(a1); //输出字符串函数,将字符串变量a1的值输出到控制台
}
//return 0; 为提问者添加一下,因为主函数前没有返回值限定符,则取默认形式,返回值为int
//形,必须添加这一句,否则编译器会,或者在主函数前添加void限定符表示无返回值
}//程序结束
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include"stdio.h" // 包含头文件
main() // 主函数开始
{
int x, j = 0; // 定义x和y两个局部变量 y初始化为0
char a[]="12Bou*nd678le"; // 字符数组 根据下文语义 这是源字符串
char a1[20]; // 字符数组 保存操作a后的结果
for(x=0;a[x];x++) // 开始遍历字符数组a
if(a[x]>='a'&&a[x]<='z'||a[x]>='A'&&a[x]<='Z'&&a[x]=='\0')
// 条件定义 需要满足的是只能是大小写字母 从a第一个字符开始,一直到最后一个字符,这里\0代表字符串结束,也就是一直遍历完最后一个字符的意思
a1[j++]=a[x]; // 对于满足上述条件的字母 也就是大小写字母,就将其保存到字符数组a1中
puts(a1); // 最后输出字符数组a1
}
main() // 主函数开始
{
int x, j = 0; // 定义x和y两个局部变量 y初始化为0
char a[]="12Bou*nd678le"; // 字符数组 根据下文语义 这是源字符串
char a1[20]; // 字符数组 保存操作a后的结果
for(x=0;a[x];x++) // 开始遍历字符数组a
if(a[x]>='a'&&a[x]<='z'||a[x]>='A'&&a[x]<='Z'&&a[x]=='\0')
// 条件定义 需要满足的是只能是大小写字母 从a第一个字符开始,一直到最后一个字符,这里\0代表字符串结束,也就是一直遍历完最后一个字符的意思
a1[j++]=a[x]; // 对于满足上述条件的字母 也就是大小写字母,就将其保存到字符数组a1中
puts(a1); // 最后输出字符数组a1
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对于这个问题,这段程序主要是得到a中所有的英文字母!通过for循环判断a中每一个字符的大小从而判断是否属于英文字母!谢谢,望采纳
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询