我正在将2-d char数组转换为2-d int数组,while如果\0或者\n进入字符串,我需要突破循环.此代码给出了分段错误.Arrayis的定义和索引小于1000并且已经存储了2-d char数组tempCharArray.我的代码有什么问题?
//Array[tempCount][1000];
for(int i=0;i<tempCount;i++)
{
strtok(tempCharArray[i]," ");
while(tempCharArray[i]!="\0" || tempCharArray[i]!="\n")
{
Array[i][arrayindex]=atoi(strtok(NULL," ");
arrayindex++;
}
arrayindex=0;
}
Run Code Online (Sandbox Code Playgroud) 我想知道是否有任何方式在char*另一个的开头插入一个char*.
例如:
char* a;
char* b;
char* ba;
a="HOW ARE YOU?";
b="HELLO, ";
Run Code Online (Sandbox Code Playgroud)
我想首先在ab中插入char* b,之后char* a,所以内容char* ba将是
"HELLO, HOW ARE YOU?"
那可能吗?
非常感谢你
我写了这个函数来计算NULL终止的char指针的长度
size_t strlen(char* char_ptr) {
size_t len = 0;
while (*(char_ptr++) != '\0') {
++len;
}
return len;
}
并且它工作正常,但与strlen()相比它非常慢,有没有其他方法可以做到这一点?
注意: <string.h>不可用
for(int j=0 ; j<str.length() ; j++) {
if(char[j]==(a||e||i||o||u))
count++;
}
Run Code Online (Sandbox Code Playgroud)
我知道结果(a||e||i||o||u)是一个布尔因此无法比较,但我们如何检查多个角色的存在?
我觉得标题说的够多了。
void onClickSubmit(char submit)
{
if(submit.//check if it is alphabetical)
{
//some code
}
}
Run Code Online (Sandbox Code Playgroud)
我如何检查字符提交是否在字母表中?
我想从键盘输入一个单词,将其放入字符串变量中,然后返回该单词的第一个和最后一个字母。但是我不知道要这样做。
input: "Hello"
output: "H", "o"
Run Code Online (Sandbox Code Playgroud)
PS:我想将这2个字母放在一个变量中:
print(first)
output:"H"
print(last)
output:"o"
Run Code Online (Sandbox Code Playgroud)
请给我一个解决方案!
以下面的代码为例:
int main(){
char string[] = { 'h' , 'e', 'l', 'l', 'o' };
printf(string);
printf("\n%d", strlen(string));
}
Run Code Online (Sandbox Code Playgroud)
输出将是:
hello
6
Run Code Online (Sandbox Code Playgroud)
因此,从一开始我就可以看到strlen价值偏差为1,但如果我们考虑它,它似乎并不是一个障碍.
什么时候不终止字符串会产生问题?
main() {
char c1='a' , c2='A';
int i=c2-c1;
printf("%d", i);
}
Run Code Online (Sandbox Code Playgroud)
这段代码的输出是什么。请解释一下为什么?我知道答案是 -32 但有人可以解释为什么它是 -32 吗?
我收到下面的错误,我不知道如何解决它.我只是想学习,但不能想出这个.我尝试用等号(=)替换它,并且有很多东西但没有用,代码是:
if (keyinfo.KeyChar == "a")
{
}
Run Code Online (Sandbox Code Playgroud)
这是错误:
0019运算符'=='不能应用于'char'和'string'类型的操作数
如何避免出现此错误?
有人可以向我解释,为什么在char tab []中有4个额外的插槽,当我只询问3个?如何摆脱它们?我在Visual Studio 2017中编码.编辑:第一个程序非常基本,没有显示我的意图.所以,有一个扩展的.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int i, n;
vector<char> input;
char chp;
cout << "Enter a expression" << endl;
while (1)
{
cin.get(chp);
if (chp == '\n') break;
input.push_back(chp);
}
n = input.size();
char* tab = new char[n] {};
for (i = 0; i < n; i++)
{
tab[i] = input[i];
}
int l = strlen(tab);
for (int i = 0; i < l; i++)
{
cout << "tab[" << …Run Code Online (Sandbox Code Playgroud) 我尝试用c ++执行一个简单的程序,我无法得到那个结果,我现在应该做什么,我在不同平台的gcc编译器上尝试了不同版本的代码.
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
int i,m,j;
char a[10],b[10],temp;
cout << " give the string " << endl;
cin >> a;
cout << a;
m=strlen(a);
j=0;
for(i=m;i>0;i--){
b[j]=a[i];
cout << " inloop "<<b;
j++;
}
cout << b << endl;
return 0;
Run Code Online (Sandbox Code Playgroud)
}
我已经编写了一个代码来打印2个工人的名字,但它会打印垃圾.
cout << "highest salary: " << highestSalary.getID() << " " << highestSalary.getName() << endl;
cout << "hardest worker: " << mostHours.getID() << " " << mostHours.getName();
Run Code Online (Sandbox Code Playgroud)
函数getName()在worker类中定义为:
char* Worker::getName()
{
char temp[20];
int i;
strcpy(temp, name);
return temp;
}
Run Code Online (Sandbox Code Playgroud)
在调试器上经历这一点我尝试将最高级别的帐户放入一个ver char*temp中,并且值是我预期的,让我们说"bob",但是在cout之后值为""和cout印刷垃圾.