Linux C 编程教程第 9 部分:字符串Linux C 编程教程第 9 部分:字符串Linux C 编程教程第 9 部分:字符串Linux C 编程教程第 9 部分:字符串
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

Linux C 编程教程第 9 部分:字符串

在这个正在进行的 C 编程教程系列中,我们已经谈到了字符数组的概念。与字符数组密切相关的是字符串的概念,我们将在这里讨论。

字符串在一个主要方面不同于字符数组——它以 Null 字符结束。字符数组中没有这样的终止字符。以下代码段显示了一些可以定义字符串的方法:

#include <stdio.h>

int main()
{
char str[] = "string";
char str1[] = {'s','t','r','i','n','g','\0'};
char str2[10] = "string";
char str3[10] = {'s','t','r','i','n','g','\0'};
char *str4 = "string";

printf("\n str=%s, str1=%s, str2=%s, str3=%s, and str4=%s", str, str1, str2, str3, str4);

return 0;
}

因此,双引号中的一串字符是一个字符串(那里隐含终止 Null 字符),而一系列明确以一个字符结尾的字符也是一个字符串。

这个程序的输出是:

 str=string, str1=string, str2=string, str3=string, and str4=string

请记住,您不能以这种方式打印非字符串字符数组,因为那里没有终止 Null 字符来表示数组的结尾。这是一段尝试执行此操作的代码:

#include <stdio.h>

int main()
{
char str[] = {'e','n','d'};
char c ='t';

printf("\n str=%s", str);

return 0;
}

但最终会在最后打印垃圾值:

str=end??

继续,就像 Printf 中的 %s 格式说明符告诉编译器将输入变量视为字符串一样,您也可以在 scanf 函数中使用 %s 来接受字符串作为用户输入。这是一个例子:

#include <stdio.h>

int main()
{
char str[30];

printf("\n Enter a string with length less than 30 characters: ");
scanf("%s",str);

printf("\n str=%s", str);

return 0;
}

值得一提的是,用双引号括起来的零个或多个字符的序列称为字符串常量或字符串文字。这意味着 \howtoforge\ 和 \\ 都是字符串常量或字符串文字。

您可以使用标准的 strlen() 函数查找字符串的长度。这是一个例子:

#include <stdio.h>

int main()
{
char str[] = "howtoforge";

printf("\n Length of string 'howtoforge' is: %d", strlen(str));

return 0;
}

这个程序产生的输出是 10,这恰好是 howtoforge 中的字符数,因此也是它的长度。

继续,值得记住的是单引号中的字符(如 d)和双引号中的字符(如 \d\)彼此不同。第一个是字符常量(可用于生成机器字符集中字符的数值),第二个是字符串(意味着其中有一个终止字符)。

最后,让我们快速看一下如何将字符串作为参数传递给函数。

#include <stdio.h>

void change_value(char s[])
{
s[0] = 'H';
s[5] = 'F';

printf("%s", s);

}

int main()
{
char str[] = "howtoforge";

change_value(str);

return 0;
}

所以在上面的程序中,它是作为参数传递的数组 str 的名称,因为它指的是数组的基地址。函数 change_value 的声明是这样的,它需要一个数组作为输入。下面是这个程序的输出:

HowtoForge                                                                                                        

因此在本教程中,我们讨论了字符串的基础知识,包括它们的定义方式和使用方式。我们将在接下来的教程中学习更多关于字符串的知识,但这篇文章应该足以让您入门。如果您对字符串有任何疑问或疑问,请在下面的评论中告诉我们。

©2015-2025 艾丽卡 support@alaica.com