本文最后更新于482 天前,其中的信息可能已经过时,如有错误请发送邮件到echobydq@gmail.com
输入
gets()
不保留换行符
读取整行输入,直至遇到换行符,然后丢弃换行符,存储其余字符,并且在末尾添加空字符 \0
fgets()
保留换行符
从指定的流 stream 读取一行,并把它存储在 str 所指向的字符串内。当读取 (n-1) 个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。
char *fgets(char *str, int n, FILE *stream)
- str — 这是指向一个字符数组的指针,该数组存储了要读取的字符串。
- n — 这是要读取的最大字符数(包括最后的空字符)。通常是使用以 str 传递的数组长度。
- stream — 这是指向 FILE 对象的指针,该 FILE 对象标识了要从中读取字符的流
#include <stdio.h>
int main()
{
FILE *fp;
char str[60];
/* 打开用于读取的文件 */
fp = fopen("file.txt" , "r");
if(fp == NULL) {
perror("打开文件时发生错误");
return(-1);
}
if( fgets (str, 60, fp)!=NULL ) {
/* 向标准输出 stdout 写入内容 */
puts(str);
}
fclose(fp);
return(0);
}
输出
put
显示字符串时会自动在末尾添加换行符
fputs
末尾不会添加换行符
1. 统计长度
strlen():
int a;
char str[n];
a = strlen(str);
2. 拼接字符串
strcat()
把 src 所指向的字符串追加到 dest 所指向的字符串的结尾
char *strcat(char *dest, const char *src)
- dest — 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串。
- src — 指向要追加的字符串,该字符串不会覆盖目标字符串。
该函数返回一个指向最终的目标字符串 dest 的指针
char src[50], dest[50];
strcpy(src, "This is source");
strcpy(dest, "This is destination");
strcat(dest, src);
最终的目标字符串: This is destinationThis is source|
strncat()
把 src 所指向的字符串追加到 dest 所指向的字符串的结尾,直到 n 字符长度为止。
char *strncat(char *dest, const char *src, size_t n)
- dest — 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串,包括额外的空字符。
- src — 要追加的字符串。
- n — 要追加的最大字符数。
该函数返回一个指向最终的目标字符串 dest 的指针。
char src[50], dest[50];
strcpy(src, "This is source");
strcpy(dest, "This is destination");
strncat(dest, src, 15);
最终的目标字符串: This is destinationThis is source|
3. 比较字符串
strcmp()
int strcmp(const char *str1, const char *str2)
- str1 — 要进行比较的第一个字符串。
- str2 — 要进行比较的第二个字符串。
该函数返回值如下:
- 如果返回值< 0,则表示 str1 小于 str2。
- 如果返回值 > 0,则表示 str1 大于 str2。
- 如果返回值 = 0,则表示 str1 等于 str2。
strncmp()
int strncmp(const char *str1, const char *str2, size_t n)
- str1 — 要进行比较的第一个字符串。
- str2 — 要进行比较的第二个字符串。
- n — 要比较的最大字符数。
该函数返回值如下:
- 如果返回值 < 0,则表示 str1 小于 str2。
- 如果返回值 > 0,则表示 str1 大于 str2。
- 如果返回值 = 0,则表示 str1 等于 str2。
4. 复制
strcpy
src 所指向的字符串复制到 dest。
char *strcpy(char *dest, const char *src)
- dest — 指向用于存储复制内容的目标数组。
- src — 要复制的字符串。
该函数返回一个指向最终的目标字符串 dest 的指针。
char src[40];
char dest[100];
strcpy(src, "This is runoob.com");
strcpy(dest, src);
strncpy
把 src 所指向的字符串复制到 dest,最多复制 n 个字符。当 src 的长度小于 n 时,dest 的剩余部分将用空字节填充
char *strncpy(char *dest, const char *src, size_t n)
- dest — 指向用于存储复制内容的目标数组。
- src — 要复制的字符串。
- n — 要从源中复制的字符数。
该函数返回最终复制的字符串。