您的位置:首页 > 其它

简单字符串的处理

2013-11-07 16:46 169 查看
// 字符串处理.cpp : 定义控制台应用程序的入口点。

// 1.  把每个单词的首字母变为大写。

// 2.    把数字与字母之间用下划线字符(_)分开,使得更清晰

// 3.    把单词中间有多个空格的调整为1个空格。

//    例如:

//    用户输入:

//    you and     me what  cpp2005program

//    则程序输出:

//    You And Me What Cpp_2005_program

//    用户输入:

//    this is     a      99cat

//    则程序输出:

//    This Is A 99_cat

#include "stdafx.h"

#include <stdio.h>

#include <string.h>

#include <ctype.h>

int _tmain(int argc, _TCHAR* argv[])

{

    char str[200] = {0};

    char str1[200] = {0};

    char pre = 0;   //str当前字符的上一个字符

    int count = 0;  //判断是否出入' '的标识

    int index = 0;  //str1的数组下标

    gets_s(str,200);

    int length = strlen(str);

    //isalpha 检查ch是否是字母

    //isdigit 检查ch是否是数字

    //isupper 检查ch是否是大写字母

    //isalnum 检查ch是否是字母或者数字

    for (int i = 0; i < length; ++i) {

        if (isalpha(str[i])) {

            if (!isalnum(pre) && !isupper(str[i])) {

                str1[index++] = str[i] - 32;

                count = 0;

            } else {

                if (isdigit(pre)) {

                    str1[index++] = '_';

                }

                    str1[index++] = str[i];

              }

        } else if (isdigit(pre) && isalpha(str[i])||isalpha(pre) && isdigit(str[i])) {

            str1[index++] = '_';

            str1[index++] = str[i];

            count = 0;

        } else if (str[i] == ' ') {

            if (count == 0)

                str1[index++] = ' ';

            count++;

        } else {

            str1[index++] = str[i];

        }

        pre = str[i];

    }

    str1[index] = '\0';

    puts(str1);
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: