//我必须将一行文本输入到c字符串中,然后将每个单词转换为指针数组中的指针。
//我可以使用cin.get()获取文本行,但不知道如何继续。
#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);
}
//我需要将输入行分解为单独的字符串,并将其存储为指向每个单词的指针数组。
发布于 2019-04-08 11:31:03
将输入读入数组后,可以遍历数组,并将指针设置为每个单词的第一个字符。
char* word[100];
// Assuming the first character is the beginning of a word
word[0] = ¶graph[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] = ¶graph[i];
c++
}
}
i++;
}
您还可以使用char* arrays
的矢量来存储单词,并通过非字母字符拼接单词,然后为矢量中的每个项目生成一个指针。
发布于 2019-04-08 09:29:45
您可以使用c_str()函数来交换
https://stackoverflow.com/questions/55565005
复制相似问题