目录

计算机编程 - 字符串(Strings)

在我们讨论characters ,我们了解到字符数据类型处理单个字符,您可以将键盘中的任何字符分配给字符类型变量。

现在,让我们先行一点,考虑一下我们需要在变量中存储多个字符的情况。 我们已经看到C编程不允许在字符类型变量中存储多个字符。 因此,以下语句在C编程中无效并产生语法错误 -

char ch1 = 'ab';
char ch2 = '10';

我们还看到了如何使用arrays的概念在变量中存储多个相似数据类型的值。 以下是在int类型数组中存储和打印五个数字的语法 -

#include <stdio.h>
main() {
   int number[5] = {10, 20, 30, 40, 50};
   int i = 0;
   while( i < 5 ) {
      printf("number[%d] = %d\n", i, number[i] );
      i = i + 1;
   }
}

编译并执行上述代码时,会产生以下结果 -

number[0] = 10
number[1] = 20
number[2] = 30
number[3] = 40
number[4] = 50

现在,让我们以与数字相同的方式定义一个包含五个字符的数组,并尝试打印它们 -

#include <stdio.h>
main() {
   char ch[5] = {'H', 'e', 'l', 'l', 'o'};
   int i = 0;
   while( i < 5 ) {
      printf("ch[%d] = %c\n", i, ch[i] );
      i = i + 1;
   }
}

在这里,我们使用%c来打印字符值。 编译并执行上述代码时,会产生以下结果 -

ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o

如果你已经完成了上面的例子,那么我认为你理解字符串在C编程中是如何工作的,因为strings in C are represented as arrays of characters 。 C编程简化了字符串的赋值和打印。 让我们用简化的语法再次检查相同的例子 -

#include <stdio.h>
main() {
   char ch[5] = "Hello";
   int i = 0;
   /* Print as a complete string */
   printf("String = %s\n", ch);  
   /* Print character by character */
   while( i < 5 ) {
      printf("ch[%d] = %c\n", i, ch[i] );
      i = i + 1;
   }
}

这里,我们使用%s来使用数组名ch打印完整的字符串值,这实际上是保存ch变量的内存地址的开头,如下所示 -

C/C ++中的字符串表示

虽然从上面的示例中看不到它,但是C程序在内部将空字符'\0'为每个字符串的最后一个字符。 它表示字符串的结尾,这意味着如果要在数组中存储5个字符的字符串,则必须将数组大小定义为6作为一种好习惯,尽管C不会抱怨它。

如果上面的代码被编译并执行,它会产生以下结果 -

String = Hello
ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o

基本字符串概念

基于以上讨论,我们可以得出以下有关C编程语言中字符串的重要观点 -

  • C中的字符串表示为字符数组。

  • 我们可以通过将字符分配到字符数组中来构成C编程中的字符串。

  • 我们可以通过分配用双引号括起来的完整字符串来构成C编程中的字符串。

  • 我们可以使用数组下标或完整字符串通过使用不带下标的数组名来逐字符打印字符串。

  • 每个字符串的最后一个字符是空字符,即'\0'

  • 大多数编程语言提供了操作字符串的内置函数,即,您可以连接字符串,您可以从字符串中搜索,您可以从字符串中提取子字符串等。有关更多信息,您可以查看我们的详细教程。 C编程或任何其他编程语言。

Java中的字符串

虽然您可以使用字符数组来存储字符串,但Java是一种高级编程语言,其设计者试图提供其他功能。 Java提供字符串作为内置数据类型,就像任何其他数据类型一样。 这意味着您可以直接定义字符串,而不是将它们定义为字符数组。

以下是用Java编写的等效程序。 Java使用new运算符来创建字符串变量,如以下程序所示。

您可以尝试执行以下程序以查看输出 -

public class DemoJava {
   public static void main(String []args) {
      String str = new String("Hello");  
      System.out.println( "String = " + str );
   }
}

执行上述程序时,会产生以下结果 -

String = Hello

Python中的字符串

在Python中创建字符串就像使用单引号或双引号将字符串分配到Python变量一样简单。

下面给出一个简单的程序,它创建两个字符串并使用print()函数打印它们 -

var1 = 'Hello World!'
var2 = "Python Programming"
print "var1 = ", var1
print "var2 = ", var2

执行上述程序时,会产生以下结果 -

var1 =  Hello World!
var2 =  Python Programming

Python不支持字符类型; 这些被视为长度为1的字符串,因此也被视为子字符串。

要访问子字符串,请使用方括号进行切片以及索引或索引以获取子字符串。 看看以下代码段 -

var1 = 'Hello World!'
var2 = "Python Programming"
print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]

执行上述代码时,会产生以下结果 -

var1[0]:  H
var2[1:5]:  ytho
↑回到顶部↑
WIKI教程 @2018