怎么做
  1. 题面里的虚线方框就是要填的空
  2. 点候选项,它会填进当前高亮的那个空
  3. 点已填好的空,可以把选项取回来重选
  4. 全部填满后「提交」才会亮起
卡住了就点右下角的 👩‍🏫 问 AI 老师,她会给提示但不直接给答案。

删除字符的双下标写法

👁️ 24 人浏览 💬 0 人评论 ❤️ 添加收藏

删掉 *:i 扫过每一格,留下的依次写到 s[j],最后补 '\0'

i

j

h
*
i
*
*
!
h
i
!
\0

二级操作题里字符串处理出得最多,删除、筛选几乎都用这一个套路:i 从头读到尾,j 只在「留下」时往前写。s[j++] = s[i]; 是先把 s[i] 写到 s[j],再让 j 加 1。最后别忘了在 s[j] 放 '\0'。

#include <stdio.h>

int main(void)
{
    char s[20] = "a-b--c";
    int i, j = 0;
    for (i = 0; s[i] != '\0'; i++)
        if (s[i] != '-')
            s[j++] = s[i];
    s[j] = '\0';
    printf("%s %d\n", s, j);
    return 0;
}

程序输出的字符串是【0】,j 最后等于【1】;如果删掉 s[j] = '\0'; 这一行,输出的字符串会变成【2】。

请登录后作答。
去登录
👩‍🏫
AI
💬 题目评论
🔒 登录并作答后可看讨论