zy_021226 2021-12-11 12:32 采纳率: 71.4%
浏览 38
已结题

解答一下,需要这个程序框图

int main(){
char s[100],s1[100];
int i,j,index=0;
printf("enter:");
gets(s);
for(i=0;s[i]!='\0';i++){
if(s[i]!='a'){
s1[index]=s[i];
index++;
}
else{
for(j=0;j<3;j++){
s1[index++]='#';
}
}
}
s1[index] = '\0';
puts(s1);
return 0;
}

  • 写回答

1条回答 默认 最新

  • 我是麻瓜喔 2021-12-11 12:53
    关注

    整体程序的作用是将输入的字符串中的字符'a'替换成'###'

    
    #include <stdio.h>
    int main(void)
    {
        char s[100], s1[100];
        int i, j, index = 0;
        printf("enter:");
        gets(s); // 输入字符串
        for (i = 0; s[i] != '\0'; i++)
        // 遍历字符串数组s内的字符,整体的作用是将输入的字符串中的字符'a'替换成'###'
        {
            if (s[i] != 'a') // 如果字符不为'a',则存入s1中
            {
                s1[index] = s[i]; // index此时等于0,C语言索引从0开始
                index++;          // index加1
            }
            else // 如果字符为'a',则替换为'###'
            {
                for (j = 0; j < 3; j++)
                {
                    s1[index++] = '#'; // 先进行赋值,即s1[index] = '#',然后index加1
                }
            }
        }
        s1[index] = '\0'; // 字符串数组最后一个字符必须是'\0'
        puts(s1);         // 输出字符串s1
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月13日
  • 已采纳回答 6月5日
  • 创建了问题 12月11日