前言
上一篇《C算法编程题(五)“E”的变换》
连续写了几篇有关图形输出的编程题,今天说下有关字符串的处理。
程序描述
在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用户输入的串进行处理。具体规则如下:
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
我们假设:用户输入的串中只有小写字母,空格和数字,不含其它的字母或符号。每个单词间由1个或多个空格分隔。
假设用户输入的串长度不超过200个字符。
程序实现
这个题目看起来很简单,但是想一想,用C的简单语法实现起来还是有些麻烦的,毕竟没有.net里面那么多字符串处理的方法。
题目就三个要求,就是字符转换和处理,感觉简单,但是却无从下手。
还是那句话,做这种编程题,思路清晰了,代码才好实现。这里我说一种思路,如果大家有更好的,欢迎交流。
如果转换、移除和插入一个字符,就必须知道上一个字符和下一个字符是什么,比如第二点要求,就得知道上一个字符是英文下一个字符是数字或是上一个字符是数字下一个字符是英文,第三点也是,去空格就得知道上一个和下一个字符都是空格,第一点也是如此,变大写就得索引是0或是上一个字符是空格和下一个字符是字符。
思路就是这样,理清了就会发现很简单了,然后就是一些细节处理了。
代码我就不分析了,直接贴下代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
char strArray[] = {};
char strResult[] = {};
int i=,j=,Len;
int nMark = ; printf("请输入字符串:\n");
gets(strArray); Len = strlen(strArray); while(i<Len)
{
switch(nMark)
{
case :
{
if(strArray[i]>='a'&&strArray[i]<='z')
{
strResult[j++] = strArray[i++]-'a'+'A';
nMark = ;
}
else if(strArray[i]>=''&&strArray[i]<='')
{
strResult[j++] = strArray[i++];
nMark = ;
}
else if(strArray[i]==' ')
{
strResult[j++] = strArray[i++];
nMark = ;
}
}
break;
case :
{
if(strArray[i]>='a'&&strArray[i]<='z')
{
strResult[j++] = strArray[i++];
nMark = ;
}
else if(strArray[i]>=''&&strArray[i]<='')
{
strResult[j++] = '_';
strResult[j++] = strArray[i++];
nMark = ;
}
else if(strArray[i]==' ')
{
strResult[j++] = strArray[i++];
nMark = ;
}
}
break;
case :
{
if(strArray[i]>='a'&&strArray[i]<='z')
{
strResult[j++] = '_';
strResult[j++] = strArray[i++];
nMark = ;
}
else if(strArray[i]>=''&&strArray[i]<='')
{
strResult[j++] = strArray[i++];
nMark = ;
}
else if(strArray[i]==' ')
{
strResult[j++] = strArray[i++];
nMark = ;
}
}
break;
case :
{
if(strArray[i]>='a'&&strArray[i]<='z')
{
strResult[j++] = strArray[i++]-'a'+'A';
nMark = ;
}
else if(strArray[i]>=''&&strArray[i]<='')
{
strResult[j++] = strArray[i++];
nMark = ;
}
else if(strArray[i]==' ')
{
i++;
nMark = ;
}
}
break;
default:
break;
}
} puts("转换后的字符串为:");
printf("%s",strResult); getchar();
}
运行结果:
aaarticlea/png;base64,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" alt="" />