zcmerlin 2016-09-06 03:58 采纳率: 70%
浏览 1182

C:分离字符串子串问题

通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。请编写一个程序,自动分离出各个子串,并使用’,’将其分隔,并且在最后也补充一个’,’并将子串存储。
如果输入“abc def gh i d”,结果将是abc,def,gh,i,d,

图片说明

我写的代码只能识别一个空格,不能识别多个空格

 #include <stdio.h>
#include <string.h>

void DividString(const char *pInputStr, long lInputLen, char *pOutputStr);

int main()
{
    char str1[101], str2[101], len, i, j;

    gets(str1);

    len = strlen(str1);

    DividString(str1, len, str2);

    puts(str2);

    getchar();
    return 0;
}

void DividString(const char *pInputStr, long lInputLen, char *pOutputStr)
{
    int i;

    for (i = 0; i < lInputLen; i++)
    {
        if (pInputStr[i] != ' ')
            pOutputStr[i] = pInputStr[i];
        else if (pInputStr[i] == ' '&&pInputStr[1 + i] != ' ')
            pOutputStr[i] = ',';
        else if (pInputStr[i] == ' '&&pInputStr[1 + i] == ' ')
            continue;
    }
    pOutputStr[i++] = ',';
    pOutputStr[i] = '\0';
}
  • 写回答

2条回答

  • AlbertS 博客专家认证 2016-09-06 04:14
    关注

    把函数改一下

     void DividString(const char *pInputStr, long lInputLen, char *pOutputStr)
    {
        int i;
        bool bCanInputComma = false;
        int nCount = 0;
    
        for (i = 0; i < lInputLen; i++)
        {
            if (pInputStr[i] != ' ')
            {
                pOutputStr[nCount] = pInputStr[i];
                ++nCount;
                bCanInputComma = true;
            }
            else if (pInputStr[i] == ' ' && bCanInputComma == true)
            {
                pOutputStr[nCount] = ',';
                ++nCount;
                bCanInputComma = false;
            }
        }
    
        pOutputStr[nCount] = ',';
        pOutputStr[nCount + 1] = '\0';
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘