1. getchar和putchar(字符输入输出操作)
getchar获取输入字符函数,putchar输出字符函数。一般使用形式如下:
char c;
c = getchar();// 获取终端输入字符
putchar(c);// 将字符输出到终端
eg:
#include <stdio.h>
int main(void) {
char c;/* 定义字符变量c */
printf("请输入字符:\n");
c = getchar();/* 获取输入字符 */
putchar(c);/* 输出字符 */
return 0;
}
2. gets和puts(字符串输入输出操作)
gets字符串输入,puts字符串输出。
eg:
#include <stdio.h>程序运行后输入hello world,回车再调用puts输出字符串:
#define SIZE 10
int main(void) {
char str[SIZE];
printf("请输入字符串:\n");
gets(str);/* 获取输入字符串,将输入的字符串,存在一维数组str中 */
puts(str);/* 输出字符串 */
return 0;
}
3. strcpy和strncpy(字符串复制操作)
strcpy和strncpy都是字符串的复制函数,使用语法:
strcpy(str1,str2),强字符串str2复制到str1中,需要保证str1的有效内存空间能够存下str2的内存,
如果str2超过str1的有效内存,将会覆盖外部内存空间,可能出现不可预知的后果,所以,strcpy不是安全函数。
strncpy(str1,str2, n),将str2的前n个字符复制到st1中前n位,即将str2中的前n位覆盖掉str1中的前n位,也不是安全函数。
注意: 在字符串复制时,一般建议使用strncpy(str1,str2,n)函数。
eg:
#include <stdio.h>
#include <string.h>
int main(void) {
char str1[] = "abc";
char str2[] = "defgh";
char str3[] = "hello";
char str4[] = "world";
strcpy(str1,str2);/* 将str2复制到str1中 */
printf("str1:%s\n",str1);
strncpy(str3,str4,2);/* 将str4的前2位wo复制到str3中前两位字符空间 */
printf("str3:%s\n",str3);// wollo
return 0;
}
4. strcat和strncat(字符串拼接操作)
strcat和strncat均为字符串拼接语句。
strcat(str1,str2),将str2拼接在str1之后,
strcat(str1,str2,n),将str2的前n个字符拼接到str1后。
eg:
#include <stdio.h>
#include <string.h>
#define SIZE 20
int main(void) {
char str1[SIZE] = "a\0a";
char str2[SIZE] = "bbb";
strcat(str1,str2);
puts(str1);/* a+bbb=abbb,即str1=abbb */
strncat(str1,str2,2);
puts(str1);/* str2=str1+bb=abbb+bb=abbbbb */
return 0;
}
5. strcmp和strncmp(字符串比较操作)
strcmp和strncmp为字符串比较函数。字符串之间的比较不能通过关系运算符进行操作。
比如: str1 > str2,如果这样比较,就是比较字符串str1和str2的首地址,不能这样进行比较。
而应该使用strcmp(str1,str2)或strncmp进行比较,其中strncmp(str1,str2,n)比较str1,str2的前n个字符。
字符串通过每一个字符的ASCII码值进行大小比较,字符串中所有对应字符的ASCII相等,则两个字符串
相等,否则不相等。
eg:
#include <stdio.h>
#include <string.h>
int main(void) {
char str1[] = "hello";
char str2[] = "hello world";
/* str1与str2不相等,返回1*/
printf("strcmp=%d\n",strcmp(str1,str2));
/* 字符串str1和str2的前5个字符分别为hello,进行比较相等,返回0 */
printf("strncmp=%d\n",strncmp(str1,str2,5));
return 0;
}
6.strupr和strlwr(字符串大小写转换操作)
strupr字母小写转大写,
strlwr字母大写转小写。
#include <stdio.h>
#include <string.h>
int main(void) {
char str1[] = "Hello World";
char str2[] = "HELLO WORLD";
puts(strupr(str1));
puts(strlwr(str1));
return 0;
}