简单字符串的处理
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;
}
// 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;
}
相关文章推荐
- hdu 1062 Text Reverse(字符串处理,简单模拟)
- ZJU_PAT_basic level_1014 字符串的简单处理与临界值的判定
- 字符串的简单处理
- 南阳oj 400 I'll play a trick on you (细节规律题 简单的字符串处理)
- poj 3077 Rounders 【简单字符串处理】
- scanf()与sscanf()学习,简单的字符串处理。
- 经验分享:处理PHP字符串的简单方法
- 简单算法—字符串处理
- HDOJ/HDU 2567 寻梦(字符串简单处理)
- HDU-1228-A + B(简单字符串处理)
- 王亟亟的Python学习之路(九)-sorted()排序以及简单字符串处理
- 从服务器中返回的时间字符串(或时间戳)的一些简单处理
- HDU1004 Let the ballon raise(水题, 字符串的处理)(map简单用法)
- Automatic Poetry - UVa 10361 简单字符串处理
- strcat,strcpy,strcmp,strlen4个常用字符串处理函数的数组与指针简单实现方法~
- PHP处理字符串的简单方法
- SDUSTOJ - 1063 提取缩略词( 简单的字符串处理 )
- IPython下字符串的简单处理 - 千月的python linux 系统管理指南学习笔记(8)
- HDOJ/HDU 2567 寻梦(字符串简单处理)
- 王亟亟的Python学习之路(九)-sorted()排序以及简单字符串处理