1. 字符串大小写转换
在C语言中,字符串是一个字符数组,因此对字符串的操作实际上就是对字符数组的操作。字符串的大小写转换可以通过循环遍历字符数组来实现。
1.1 将字符串转换成大写
将字符串转换成大写可以使用C库函数toupper()
,该函数将小写字母转换成大写字母,其他字符不变。
#include <stdio.h>
#include <ctype.h>
int main() {
char str[] = "Hello, World!";
int i = 0;
while (str[i]) {
putchar(toupper(str[i]));
i++;
}
return 0;
}
上述代码输出结果如下:
HELLO, WORLD!
1.2 将字符串转换成小写
将字符串转换成小写可以使用C库函数tolower()
,该函数将大写字母转换成小写字母,其他字符不变。
#include <stdio.h>
#include <ctype.h>
int main() {
char str[] = "Hello, World!";
int i = 0;
while (str[i]) {
putchar(tolower(str[i]));
i++;
}
return 0;
}
上述代码输出结果如下:
hello, world!
2. 字符串比较
在C语言中,使用strcmp()
函数来比较两个字符串的大小关系。该函数的返回值依赖于比较操作结果是否相等,相等则返回0,大于则返回正整数,小于则返回负整数。
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "hello world";
char str2[] = "HELLO WORLD";
int result = strcmp(str1, str2);
if(result == 0) {
printf("str1 is equal to str2");
} else if(result < 0) {
printf("str1 is less than str2");
} else {
printf("str1 is greater than str2");
}
return 0;
}
上述代码输出结果如下:
str1 is less than str2
需要注意的是,字符串的比较是按照字典顺序进行的,因此字符的ASCII码大小关系对比决定了字符串的大小关系。字符串大小写的感知和比较可以通过均转成大写或小写实现。
3. 字符串排序
在C语言中,使用qsort()
函数可以方便快捷地对字符串进行排序。需要注意的是排序的基准函数需要自己实现,该函数作为qsort()
的参数传入。下面是一个示例程序。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// qsort需要的比较函数
int compare (const void * a, const void * b) {
return (strcmp(*(const char **)a, *(const char **)b));
// 如果想要区分大小写可以使用以下代码
// return (strcasecmp(*(const char **)a, *(const char **)b));
}
int main () {
char *names[] = {"John", "Raymond", "Joe", "Andres", "Carl"};
int i = 0;
// 按字典顺序排序
qsort(names, 5, sizeof(char *), compare);
for(i = 0; i < 5; i++) {
printf("%s\n", names[i]);
}
return 0;
}
上述代码输出结果如下:
Andres
Carl
Joe
John
Raymond
在上述示例中,需要我们实现一个比较函数compare()
,该函数的作用是比较两个字符串的大小关系。
4. 字符串拼接
在C语言中,使用strcat()
函数可以将一个字符串连接在另一个字符串的后面,其用法如下:
#include <stdio.h>
#include <string.h>
int main () {
char str1[30] = "Hello ";
char str2[30] = "World!";
strcat(str1, str2);
printf("%s", str1);
return 0;
}
上述代码输出结果如下:
Hello World!
需要注意的是,如果要将一个字符串复制到另一个字符串数组中,需要使用strcpy()
函数。其用法与strcat()
函数相似,不过将替换字符换的目标改为目标字符串数组。
5. 总结
字符串操作是C语言中比较基础的操作之一,本文介绍了C语言中的字符串大小写转换、比较、排序、拼接等操作方法。希望能帮助大家更好地掌握字符串操作。