zoukankan      html  css  js  c++  java
  • 一个将多个空格转换成一个空格的程序

    #include <stdio.h>
    #include
    <stdlib.h>
    #include
    <string.h>
    #define MAX 100
    char bak_str[MAX];

    void Del_Blank(char *p)
    {
    int i = 0;
    int j = 0;
    int flag = 0;
    while(*(p + i) != '\0')
    {

    while ( *(p+i) == ' ' )
    {
    i
    ++;
    flag
    = 1;
    }

    if(1 == flag)
    {
    *(bak_str + j) = ' ';
    j
    ++;
    flag
    = 0;
    }
    else
    {
    while ( (*(p + i) != ' ') && (*(p + i) != '\0'))
    {
    printf(
    "start of the i:%d\n",i);
    *(bak_str+j) = *(p+i);
    j
    ++;
    i
    ++;
    }
    }
    }
    bak_str[j]
    = '\0';
    }

    int main(void )
    {
    char strarr[MAX];
    printf(
    "please input string:\n");
    fgets(strarr,MAX,stdin);
    Del_Blank(strarr);
    printf(
    "after deal whith the string:\n");
    puts(bak_str);
    return 0;
    }
    这里说几个小的知识点:
    1 尽量少用gets
    2 fgets和gets在从标准输入中获取内容上是有区别的,gets不会获取输入字符串后敲入的换行符,而fgets会获取换行符放在数组中.
    3 strlen在计算字符串的长度时不会将'\0'计算进去.
  • 相关阅读:
    第三章
    第二章
    第一章
    第九章 硬件抽象层:HAL
    第十章 嵌入式Linux的调试技术
    第八章 让开发板发出声音:蜂鸣器驱动
    第七章
    第六章
    第五章总结
    第四章 源代码的下载和编译
  • 原文地址:https://www.cnblogs.com/hnrainll/p/2033540.html
Copyright © 2011-2022 走看看