gpt4 book ai didi

C++ 数组和 strstrok

转载 作者:搜寻专家 更新时间:2023-10-31 00:51:59 25 4
gpt4 key购买 nike

我正在使用 C++ 中的数组。所以我在数组中的输入是 O3B4F2,我想输出 OOOBBBBFF?..我正在阅读有关函数 strtrok 的内容,但我不太了解它的含义,因为它在标记上分割句子。

#include <iostream>
#include <string.h>
#include<stdlib.h>
using namespace std;
int main ()
{
char a[100+1];
cin>>a;
char * pch;
char dioba[]="0 1 2 3 4 5 6 7 8 9 ";
pch = strtok (a,dioba);
int c;
for(int i=0;i<strlen(a);i++)
{
if(isdigit(a[i])==1)
{

}
}
while (pch != NULL)
{
cout<<pch<<endl;
pch = strtok (NULL,dioba);
}

return 0;
}

此外,我尝试解决一个类似的任务,我需要将数组分成字母组。我有输出需要togo,我希望我的输出看起来像ne e d to go。所以在字母 e 和 o 之后,我想使用空格或换行符。

 #include <iostream>
#include <iostream>
#include <string.h>
#include<stdlib.h>
using namespace std;
int main ()
{
char a[100+1];
cin>>a;
char b[100+1];
int i=0,j=0;
for(i;i<strlen(a);i++)
{
if(a[i]=='a'||a[i]=='e'|| a[i]=='i')
for(j;j<strlen(a);j++)
{
b[j]=' ';
}
b[j]= a[i];
cout<<b<<endl;
}
return 0;
}

最佳答案

对于您的第一个案例,如评论中所述,无需使用 strtok。下面是一个代码示例(尽管有很多方法可以执行请求的任务):

#include <iostream>
#include <string>
#include <sstream>

int main ()
{
std::string s;
std::cin >> s;
std::istringstream stream(s);

char pch;

// fetch stream for the character to repeat until the end of the string
while( stream >> pch )
{
char nbChars;
// fetch length for repetition
stream >> nbChars;
// convert character to its integer value
nbChars -= '0';
// repeat character as many times as needed
for(int i=0; i < nbChars;i++)
{
std::cout << pch;
}
}

return 0;
}

对于你的第二个任务,我建议这个示例代码,你可以根据需要修改字母。

#include <iostream>
#include <string>

int main ()
{
std::string s;
std::string needSpaceChars{"aeo"};

// read content on standard input
std::getline(std::cin, s);
// for each char, check its value and add space after the letters defined in needSpaceChars variable
for(char pch: s)
{
// display character first
std::cout << pch;
// add space if character is in the list of characters to handle
if( needSpaceChars.find(pch) != std::string::npos )
{
std::cout << ' ';
}
}

return 0;
}

关于C++ 数组和 strstrok,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53426168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com