首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将c-string转换为指针数组,其中每个指针都是char数组中的一个单词?

如何将c-string转换为指针数组,其中每个指针都是char数组中的一个单词?
EN

Stack Overflow用户
提问于 2019-04-08 08:55:58
回答 2查看 57关注 0票数 -1

//我必须将一行文本输入到c字符串中,然后将每个单词转换为指针数组中的指针。

//我可以使用cin.get()获取文本行,但不知道如何继续。

代码语言:javascript
复制
#include <iostream>
#include <iomanip>

using namespace std;

// Function Prototypes

void get_input(char *array, int size); // gets paragraph as input and assigns it to char array



int main()
{
    const int SIZE = 256; // holds size of char array

    const int POINTER_SIZE = 20; // holds 20 pointers in array of pointers

    char paragraph[SIZE]; // initialize array to hold paragraph

    get_input(paragraph, SIZE); 




}

// Function Definitions

void get_input(char *array, int size) {

    cout << "Enter a paragraph: ";

    cin.getline(array, size); 

}

//我需要将输入行分解为单独的字符串,并将其存储为指向每个单词的指针数组。

EN

回答 2

Stack Overflow用户

发布于 2019-04-08 11:31:03

将输入读入数组后,可以遍历数组,并将指针设置为每个单词的第一个字符。

代码语言:javascript
复制
char* word[100];
// Assuming the first character is the beginning of a word
word[0] = &paragraph[0];

int c = 1;
int i = 1;
while(paragraph[i] != '\0'){
  // If the character was a letter
  if((paragraph[i] >= 65 && paragraph[i] <= 90) || (paragraph[i] >= 97 && paragraph[i] <= 122)){
    // If the previous character was not a letter
    if(!(paragraph[i-1] >= 65 && paragraph[i-1] <= 90) && !(paragraph[i-1] >= 97 && paragraph[i-1] <= 122)){
      word[c] = &paragraph[i];
      c++
    }
  }
    i++;
}

您还可以使用char* arrays的矢量来存储单词,并通过非字母字符拼接单词,然后为矢量中的每个项目生成一个指针。

票数 0
EN

Stack Overflow用户

发布于 2019-04-08 09:29:45

您可以使用c_str()函数来交换

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55565005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档