如何使用字符串字符数组中的 ++ 运算符访问下一个字符串

How to access the next string with the ++ operator in a character array of strings?

本文关键字:字符串 运算符 访问 下一个 何使用 字符 数组      更新时间:2023-10-16
    // This is an array which contains char pointers.
    // These char pointers will be pointing to strings.
    char* strings_array[100];
    strings_array[0] = (char*)"anisha";
    strings_array[1] = (char*)"kaul";
    strings_array[2] = (char*)"shizuka";
    strings_array[3] = (char*)"sharma";
    // Access the whole 1st string.
    std::cout << *strings_array;
    // Access the whole 2nd string.
    std::cout << strings_array[1];

以上是我尝试过的,它奏效了。我想知道如何使用 ++ 运算符到达第二个字符串。

将++作为修复前或修复后strings_array会导致lvalue required error

strings_array声明

如下:

char* strings_array[100];

是一个不可修改的左值,因此它不能成为++运算符的操作数,因为它确实修改了其操作数。

但是,您可以将ptr定义为指向数组的第一个元素的指针strings_array

char **ptr = &strings_array[0];

ptr是一个可修改的左值,因此它可以成为++的操作数。

当我们在 char 数组数据类型中自动存储多个字符时,它是 Double Dimension.char* 是指向 char 数据类型的指针.char** 是指向指针 char 的指针。这里我们已经声明了 char* strings_array所以必须使用 char** 来存储 char 指针变量的地址.使用它,我们可以通过使用 char** 变量中的 ++ 运算符递增地址来逐个访问字符串元素。

在我们的示例中,CPR 是 char** 变量,最初存储 char*

strings_array 的起始地址,CPR++ 递增地址,因为 CPR 是存储 char* 地址

的字符**
#include <iostream>
using namespace std;
int main()
 {
   char* strings_array[100];
   strings_array[0] = (char*)"anisha";
   strings_array[1] = (char*)"kaul";
   strings_array[2] = (char*)"shizuka";
   strings_array[3] = (char*)"sharma";
   cout <<"n"<< *strings_array;
   cout <<"n"<< strings_array[1];
   char **cpr=&strings_array[0];
   cout<<"n String Values using string pointer";
   cout<<"n------------------------------------";
   for(int i=0;i<4;i++)
     {
       cout<<"n"<<*(cpr);
       cpr++;
      }
   return 0;
}

输出

anisha                                                                                                                                         
kaul  
String Values using string pointer                                                                                                            
------------------------------------                                                                                                           
anisha                                                                                                                                         
kaul                                                                                                                                           
shizuka                                                                                                                                        
sharma                                                                                                                                         

希望你理解这个概念。谢谢