📜  计算机编程-字符串

📅  最后修改于: 2021-01-18 06:27:14             🧑  作者: Mango


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

现在,让我们继续前进,考虑一下需要在一个变量中存储多个字符的情况。我们已经看到,C编程不允许超过一个字符保存到一个字符类型的变量。所以以下语句在C编程中无效并产生语法错误-

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

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

#include 

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 

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 

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不支持字符类型。这些被视为长度为一的字符串,因此也被视为子字符串。

要访问子字符串,请使用方括号与一个或多个索引一起切片以获得您的子字符串。看一下以下代码段-

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