字符串,c语言新手题

输入一个字符串str1,把其中的连续非数字的字符子串换成一个‘*’,存入字符数组str2中,所有数字字符也必须依次存入str2中。输出str2输入为一行字符串str1,其... 输入一个字符串str1,把其中的连续非数字的字符子串换成一个‘*’,存入字符数组str2 中,所有数字字符也必须依次存入 str2 中。输出str2
输入为一行字符串str1,其中可能包含空格。字符串长度不超过80个字符。
输出处理好的字符串str2。
#include<stdio.h>
#include<string.h>
int main()
{
char str1[80],str2[80];
int i,j,t;
gets(str1);
i=0;j=0;
while(str1[i]!='\0')
{
t=i;
while(str1[i]<'0'&&str1[i]!='\0'||str1[i]>'9'&&str1[i]!='\0')
i++;
if(i>t)
{
str2[j]='*';
j++;
}
while(str1[i]>='0'&&str1[i]<='9'&&str1[i]!='\0')
{
str2[j]=str1[i];
i++;
j++;
}
}
str2[j]='\0';
puts(str2);
return 0;
}
我就想问一问,为什么开头的while 语句有str1[i]!='\0'了,后面的一个while还要用?
展开
 我来答
匿名用户
2015-11-18
展开全部
我认为第一句str1[i]!='\0'是判断输入了字符串,保证不是空字符串;儿后面的while里的str1[i]!='\0'是字符判断i在往后移动,保证移动到字符串结尾,相当于字符读取完,结束读取标志
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式