计算机编程 - 字符串

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

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

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

我们还看到了如何使用数组的概念在变量中存储多个类似数据类型的值.以下是在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编程中的工作原理,因为 C中的字符串表示为字符数组. 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编程中构成一个字符串用双引号括起来的完整字符串.

  • 我们可以打印一个st通过使用不带下标的数组名称使用数组下标或完整字符串按字符循环.

  • 每个字符串的最后一个字符是空字符,即,'\ 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