相关疑难解决方法(0)

C++中字符串和char []类型之间的区别

我知道一点C,现在我正在看看C++.我习惯使用char数组来处理C字符串,但是当我看到C++代码时,我看到有使用字符串类型和字符串数组的示例:

#include <iostream>
#include <string>
using namespace std;

int main () {
  string mystr;
  cout << "What's your name? ";
  getline (cin, mystr);
  cout << "Hello " << mystr << ".\n";
  cout << "What is your favorite team? ";
  getline (cin, mystr);
  cout << "I like " << mystr << " too!\n";
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

#include <iostream>
using namespace std;

int main () {
  char name[256], title[256];

  cout << "Enter your name: ";
  cin.getline (name,256);

  cout << "Enter your …
Run Code Online (Sandbox Code Playgroud)

c++ string types

118
推荐指数
4
解决办法
20万
查看次数

char**和char*[]之间的区别是什么

最近,我需要声明一个字符串数组,所以我写下了以下语句:

const char** directories = {"cricket_batting", "cricket_bowling", "croquet", "tennis_forehand", "tennis_serve", "volleyball_smash"};
Run Code Online (Sandbox Code Playgroud)

但是,g ++向我显示了错误:

error: scalar object ‘directories’ requires one element in initializer
Run Code Online (Sandbox Code Playgroud)

所以我把声明改为:

const char* directories[] = {"cricket_batting", "cricket_bowling", "croquet", "tennis_forehand", "tennis_serve", "volleyball_smash"};
Run Code Online (Sandbox Code Playgroud)

这一次,这是对的.但我不能确切地知道之间的区别char**char[].

c++

5
推荐指数
1
解决办法
3235
查看次数

字符指针取什么地址

我读到了:

char a[] = "string"; 
Run Code Online (Sandbox Code Playgroud)

a: "string"

char *ptr = "string" 
Run Code Online (Sandbox Code Playgroud)

ptr: [__] ---> "string"

我有点困惑.我知道的一件事是指针总是存储地址.在字符指针的情况下它存储了什么地址?这个块代表什么(我指向字符串的块).它是"字符串"的起始地址.

在阵列的情况下?如何清楚地区分char指针和char数组?

c

5
推荐指数
2
解决办法
1407
查看次数

什么是char*?

所以我一直在看大学关于C++的讲座,我学到了很多东西,但有一件事我还是听不懂:

为什么有时必须这样做?

char* test = "testing";
Run Code Online (Sandbox Code Playgroud)

从我读过/看过的内容来看,我只是不明白你为什么要这样做*.根据我的想法,我只*知道你有一个地址,但也许我只是错了.

c++ pointers

4
推荐指数
2
解决办法
5767
查看次数

字符指针

为什么这段代码不起作用?

int main(){
  char *str ="abcde";
   scanf("%s",str);
  printf("%s",str);
}
Run Code Online (Sandbox Code Playgroud)

但这有效吗?

int main(){
  char str[] ="abcde";
   scanf("%s",str);
  printf("%s",str);
}`
Run Code Online (Sandbox Code Playgroud)

c string

3
推荐指数
1
解决办法
659
查看次数

这些数组声明有什么区别?

#include <stdio.h>
#include <string.h>

int main(void){

char s1[30]="abcdefghijklmnopqrstuvwxyz";

printf("%s\n",s1);

printf("%s",memset(s1,'b',7));

getch();

return 0;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码有效,但是当我像这样创建 s1 数组时,

char *s1="abcdefghijklmnopqrstuvwxyz";
Run Code Online (Sandbox Code Playgroud)

它不会在编译时出现任何错误,但无法在运行时运行。

我正在使用 Visual Studio 2012。

你知道为什么吗?

我发现 memset 的原型是:

 void *memset( void *s, int c, size_t n );
Run Code Online (Sandbox Code Playgroud)

c memset

-1
推荐指数
1
解决办法
114
查看次数

标签 统计

c ×3

c++ ×3

string ×2

memset ×1

pointers ×1

types ×1