小白学习C语言之字符串操作总括大全,急速收藏!

  可以使用,gets,  可以使用,gets,字符串实际上是使用null字符 ‘,以下是 C/C++ 中定义的字符串的内存表示,字符串实际上是使用null字符 ‘,以下是 C/C   中定义的字符串的内存表示

金沙澳门官网7817网址 4

一、字符串输入

字符串管理总计,字符串总结

金沙澳门官网7817网址 1

金沙澳门官网7817网址 2

1.输入单个字符串  

  能够应用scanf函数,以空格为划分输入字符串,代码如下:

 1 #include <stdio.h> 2 #include <string.h> 3  4 int main() { 5     char str[100]; 6     // 一个一个输入字符串,以空格为结尾  7     while(scanf("%s", str) != EOF) { 8         printf("%s\n", str); 9     } 10 11     return 0;12 }

一、字符串输入

在 C 语言中,字符串实际上是使用null字符 ‘\0’
终止的一维字符数组。因而,二个以 null
结尾的字符串,包括了咬合字符串的字符。

在 C 语言中,字符串实际上是使用null字符 ‘\0’
终止的一维字符数组。由此,三个以 null
结尾的字符串,满含了整合字符串的字符。

1. 输入单个字符串  

  能够应用 scanf 函数,以空格为划分输入字符串,代码如下:

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 int main() {
 5     char str[100];
 6     // 一个一个输入字符串,以空格为结尾 
 7     while(scanf("%s", str) != EOF) {
 8         printf("%s\n", str);
 9     } 
10 
11     return 0;
12 }

 

 

 

 

上边包车型大巴扬言和早先化创设了一个 “Hello”
字符串。由于在数组的末尾存款和储蓄了空字符,所以字符数组的尺寸比单词 “Hello”
的字符数多八个。

上面包车型地铁注解和起头化创建了三个 ”Hello”
字符串。由于在数组的末段存款和储蓄了空字符,所以字符数组的分寸比单词 ”Hello”
的字符数多八个。

2.输入整行字符串

  能够行使
gets函数,以 ‘\n’为划分输入整行字符串,代码如下:

 1 #include <stdio.h> 2 #include <string.h> 3  4 int main() { 5     char str[100]; 6     // 以 '\n' 为分割输入整行字符串  7     while != NULL) { 8         printf("%s\n", str); 9     } 10 11     return 0;12 }

 

char greeting[6] = {‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘\0’};

char greeting[6] = {‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘\0’};

二、字符串处理

2. 输入整行字符串

  能够行使 gets 函数,以 ‘\n’ 为划分输入整行字符串,代码如下:

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 int main() {
 5     char str[100];
 6     // 以 '\n' 为分割输入整行字符串 
 7     while(gets(str) != NULL) {
 8         printf("%s\n", str);
 9     } 
10 
11     return 0;
12 }

 

 

 

依照数组初步化准绳,您能够把地方的讲话写成以下语句:作者推荐三个学C语言/C++的求学裙【
六二七,零一二,四六四
】,无论你是大牌还是小白,是想转行仍然想入行都得以来打听一齐前行一同读书!裙内有开采工具,很多干货和本领资料分享!

基于数组初叶化准则,您能够把地方的口舌写成以下语句:

1.字符串拷贝

  能够选拔
strcpy函数,代码如下:

#include <stdio.h>#include <string.h>int main() {    char str1[100], str2[100];    // 一个一个输入字符串,以空格为结尾     while(scanf("%s", str1) != EOF) {        strcpy(str2, str1);            // 将 str1 拷贝到 str2         printf("%s %s\n", str1, str2);    }    return 0;}

  注意:1.
str1会覆盖 str2内容;2.概念数组是,str2长度要压倒或等于 str1。

  也得以利用strncpy函数,代码如下:

 1 #include <stdio.h> 2 #include <string.h> 3  4 int main() { 5     char str1[100], str2[100]; 6     // 一个一个输入字符串,以空格为结尾  7     while(scanf("%s %s", str1, str2) != EOF) { 8         strncpy(str2, str1, 3);            // 将 str1的前3个字符 拷贝到 str1  9         printf("%s\n", str2);10     }11 12     return 0;13 }

  注意:str2的前
n个字符会被 str1的前 n个字符覆盖。

二、字符串管理

char greeting[] = “Hello”;

char greeting[] = ”Hello”;

1. 字符串拷贝

  能够运用 strcpy 函数,代码如下:

#include <stdio.h>
#include <string.h>

int main() {
    char str1[100], str2[100];
    // 一个一个输入字符串,以空格为结尾 
    while(scanf("%s", str1) != EOF) {
        strcpy(str2, str1);            // 将 str1 拷贝到 str2 
        printf("%s %s\n", str1, str2);
    }

    return 0;
}

 

 

 

 

  注意:1. str1 会覆盖
str2 内容;2. 定义数组是,str2 长度要高于或等于 str1。

 

  也能够接纳 strncpy 函数,代码如下:

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 int main() {
 5     char str1[100], str2[100];
 6     // 一个一个输入字符串,以空格为结尾 
 7     while(scanf("%s %s", str1, str2) != EOF) {
 8         strncpy(str2, str1, 3);            // 将 str1的前3个字符 拷贝到 str1 
 9         printf("%s\n", str2);
10     }
11 
12     return 0;
13 }

  注意:str2 的前 n 个字符会被 str1 的前 n 个字符覆盖。

以下是 C/C++ 中定义的字符串的内部存款和储蓄器表示:

以下是 C/C   中定义的字符串的内部存款和储蓄器表示:

2.字符串连接

  可以利用
strcat函数,代码如下:

 1 #include <stdio.h> 2 #include <string.h> 3  4 int main() { 5     char str1[100], str2[100]; 6     // 一个一个输入字符串,以空格为结尾  7     while(scanf("%s %s", str1, str2) != EOF) { 8         strcat(str2, str1);            // 将 str1 接到 str2 后面  9         printf("%s\n", str2);10     }11 12     return 0;13 }

金沙澳门官网7817网址,  注意:要潜心str2的尺寸为 str1与原 str2长度之和,str2最终的
‘\0’字符会自动消失。

  也足以利用
strncat函数,将字符串的前
n个字符连接到另三个字符后边,代码如下:

 1 #include <stdio.h> 2 #include <string.h> 3  4 int main() { 5     char str1[100], str2[100]; 6     // 一个一个输入字符串,以空格为结尾  7     while(scanf("%s %s", str1, str2) != EOF) { 8         strncat(str2, str1, 3);            // 将 str1 的前3个字符接到 str2 后面  9         printf("%s\n", str2);10     }11 12     return 0;13 }

 

金沙澳门官网7817网址 3

金沙澳门官网7817网址 4

3. 字符串比较

  能够应用
strcmp函数,代码如下:

 1 #include <stdio.h> 2 #include <string.h> 3  4 int main() { 5     char str1[100], str2[100]; 6     // 一个一个输入字符串,以空格为结尾  7     while(scanf("%s %s", str1, str2) != EOF) { 8         int ptr = strcmp(str1, str2);            // 比较 str1,str2  9         if(ptr < 0) {                            // 返回值小于0 10             printf("%s < %s\n", str1, str2);    // str1<str2 11         } else if(ptr == 0) {                    // 返回值等于012             printf("%s == %s\n", str1, str2);    // str1=str2 13         } else {                                // 返回值大于014             printf("%s > %s\n", str1, str2);    // str1>str215         }16     }17 18     return 0;19 }

2. 字符串连接

  能够动用 strcat 函数,代码如下:

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 int main() {
 5     char str1[100], str2[100];
 6     // 一个一个输入字符串,以空格为结尾 
 7     while(scanf("%s %s", str1, str2) != EOF) {
 8         strcat(str2, str1);            // 将 str1 接到 str2 后面 
 9         printf("%s\n", str2);
10     }
11 
12     return 0;
13 }

 

  注意:要专心 str2 的长短为 str1 与原 str2 长度之和,str2 最后的
‘\0’ 字符会自动消失。

 

  也得以动用 strncat 函数,将字符串的前
n 个字符连接到另贰个字符后边,代码如下:

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 int main() {
 5     char str1[100], str2[100];
 6     // 一个一个输入字符串,以空格为结尾 
 7     while(scanf("%s %s", str1, str2) != EOF) {
 8         strncat(str2, str1, 3);            // 将 str1 的前3个字符接到 str2 后面 
 9         printf("%s\n", str2);
10     }
11 
12     return 0;
13 }

 

 

一、字符串输入

一旦想要未来攻读的,笔者推荐三个学C语言/C++的学习裙【
六二六,八七一,九一六
 】邀约码凌云,无论你是大证件照旧小白,是想转行依旧想入行都能够来打听一同发展一齐读书!裙内有开荒工具,相当多干货和技巧资料分享!

4.字符串长度

  能够利用
strlen函数,代码如下:

 1 #include <stdio.h> 2 #include <string.h> 3  4 int main() { 5     char str1[100]; 6     // 一个一个输入字符串,以空格为结尾  7     while(scanf("%s", str1) != EOF) { 8         // 输出字符串长度  9         printf("strlen = %d\n", strlen;10     }11 12     return 0;13 }

3.  字符串相比

  能够动用 strcmp 函数,代码如下:

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 int main() {
 5     char str1[100], str2[100];
 6     // 一个一个输入字符串,以空格为结尾 
 7     while(scanf("%s %s", str1, str2) != EOF) {
 8         int ptr = strcmp(str1, str2);            // 比较 str1,str2 
 9         if(ptr < 0) {                            // 返回值小于0 
10             printf("%s < %s\n", str1, str2);    // str1<str2 
11         } else if(ptr == 0) {                    // 返回值等于0
12             printf("%s == %s\n", str1, str2);    // str1=str2 
13         } else {                                // 返回值大于0
14             printf("%s > %s\n", str1, str2);    // str1>str2
15         }
16     }
17 
18     return 0;
19 }

 

 

  1. 输入单个字符串

一、字符串输入

4. 字符串长度

  能够动用 strlen 函数,代码如下:

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 int main() {
 5     char str1[100];
 6     // 一个一个输入字符串,以空格为结尾 
 7     while(scanf("%s", str1) != EOF) {
 8         // 输出字符串长度 
 9         printf("strlen = %d\n", strlen(str1));
10     }
11 
12     return 0;
13 }

 

一、字符串输入
1.输入单个字符串 能够利用 scanf 函数,以空格为划分输入字符串,代码如下:
1 #include std…

能够动用scanf函数,以空格为划分输入字符串,代码如下:

  1. 输入单个字符串