- #include <stdio.h>
- void transformer(char *source, char *destination)
- {
- int i = 0;
- int flag=0; //根据flag判断字符是否是单词的起始字符,flag = 0时,字符是起始字符变为大写
- //如果源字符串开头有空格,直接复制到目标字符串
- for (; source[i]!=' ' && i!='\0'; i++) {
- destination[i] = source[i];
- }
- //将第一个字母变为大写(如果是小写)
- if (source[i]>96 && source[i]<123) {
- destination[i] = source[i] - 32;
- }else
- destination[i] = source[i];
- i++;
- flag=0;
- //处理字符串后续部分
- for(; source[i]!='\0'; i++)
- {
- //如果有空格,直接复制,并置flag为一
- if (source[i]==' ') {
- destination[i] = source[i];
- flag = 1;
- continue;
- }
- //当flag=1时,字母转换称大写,flag=0时直接复制
- if (flag) {
- if (source[i]>96 && source[i]<123) {
- destination[i] = source[i]-32;
- }
- }else{
- destination[i] = source[i];
- }
- }
- destination[i] = '\0';
- }
- int main()
- {
- char source[256];
- char destination[256];
- printf("Input the source string:\n");
- gets(source);
复制代码 gets函数确实不安全,有时候不能得到正确的输入。
|