一道c语言编程题,求帮助!谢谢!
1个回答
展开全部
当你用gets(a)读入数据之后,a数组中就是你输入的内容,同时在内容之后会被赋值为'\0',比如说输入abc,那么a[0]为'a',a[1]为'b',a[2]为'c',a[3]为'\0'
所以,第一处的for(i=0;a[!]!='\0';i++)就用来遍历a[i]数组内容的
if(a[i]>='A' && a[i]<='Z') 判断a[i]是否为大写字母
{
for(j=0;j<k;j++)
if() //从下面代码可以知道,这个k是用来计算当前b数组长度的,因为j==k时才往b数组添加内容(j==k即说明上面这个for(j=0的循环已经完全走完了,所以这里需要的处理就是当b数组中已经找到你当前大写字母已经出现过时就跳出循环,所以这里应该是if(a[i]==b[j]) break; 也就是说如果该大写字母已经被加入b了,这里就break中止这个for循环,会导致j<k
if(j==k) {b[k]=a[i];k++;}
}
b[k]='\0';这里跟前面差不多,因为k此时比你的大写字母数字多1,所以这里直接补上结束符就行了。
后面for条件跟前面当然就一样了,b[i]!='\0'
所以,第一处的for(i=0;a[!]!='\0';i++)就用来遍历a[i]数组内容的
if(a[i]>='A' && a[i]<='Z') 判断a[i]是否为大写字母
{
for(j=0;j<k;j++)
if() //从下面代码可以知道,这个k是用来计算当前b数组长度的,因为j==k时才往b数组添加内容(j==k即说明上面这个for(j=0的循环已经完全走完了,所以这里需要的处理就是当b数组中已经找到你当前大写字母已经出现过时就跳出循环,所以这里应该是if(a[i]==b[j]) break; 也就是说如果该大写字母已经被加入b了,这里就break中止这个for循环,会导致j<k
if(j==k) {b[k]=a[i];k++;}
}
b[k]='\0';这里跟前面差不多,因为k此时比你的大写字母数字多1,所以这里直接补上结束符就行了。
后面for条件跟前面当然就一样了,b[i]!='\0'
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询