简单字符串的处理
来源:互联网 发布:你最努力的时候知乎 编辑:程序博客网 时间:2024/03/29 19:33
// 字符串处理.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;
}
- 简单字符串的处理
- 字符串的简单处理
- 字符串的简单处理
- 简单的字符串处理
- 简单的字符串处理
- 字符串的简单处理~~
- 字符串的简单处理 nyoj525
- hdoj1020简单的字符串处理
- C#简单的字符串处理
- 字符串String的 简单处理
- 字符串处理的一个简单题
- 字符串处理的几个简单函数
- Pixel density(简单的字符串处理)
- n a^o7 ! (简单的字符串处理)
- hdu 1020 简单的字符串处理
- HDU 2399 GPA(简单字符串的处理)
- wertyu(简单的字符串处理问题)
- Course(简单的字符串处理问题)
- TCP 三次握手 四次挥手 socket 状态 对应代码
- C# 调用C++ DLL 的类型转换(转载版)
- 关于NSURL的解析和编码
- 查找DATESHEET网站
- C语言常用数学函数及其用法
- 简单字符串的处理
- OC——字符串的补充
- 将VFP的DBF文件导入SQL-Server2005中
- 【分享】January 2013 - Mobile Shopping (omnibus)(2013一月份移动购物 (omnibus))
- php 断点调试工具配置之三
- Oracle的Move操作
- Android PackageInstaller 静默安装的实现(附源码)
- hdu 3549 Flow Problem (ek算法模板)
- c++接口类的实现