gpt4 book ai didi

c++ - 为什么使用 sizeof() 时 char 数组的大小相同

转载 作者:行者123 更新时间:2023-11-30 01:22:23 25 4
gpt4 key购买 nike

我遇到了 char 数组大小的问题。我将一个 char 数组传递给函数并在运行该函数后,我仍然想使用 sizeof 来检查数组的大小,它不会给我数组的新大小,而是旧的大小?我想知道为什么?非常感谢!

#include<iostream>
using namespace std;

void replacement(char* arr, int len){
int count=0;
for(int i=0; i<len; i++){
if(arr[i]==' '){
count++;
}
}
int newlen=count*2+len;
//arr[newlen]='\0';
int k=newlen-1;
for(int i=len-1; i>=0; i--){
if(arr[i]!=' '){
arr[k--]=arr[i];
}
else{
arr[k--]='0';
arr[k--]='2';
arr[k--]='%';
}
}
}


int main(){
char arr[]="ab c d e g ";
cout<<sizeof(arr)<<endl;
replacement(arr, sizeof(arr));
int i=0;
while(arr[i]!=NULL) cout<<arr[i];

}

最佳答案

您不能更改数组的大小。如果您想知道数组中字符串的长度,请使用 strlen() - 这会计算空终止符之前的字符数。

更好的方法是使用 C++ std::string 类。

关于c++ - 为什么使用 sizeof() 时 char 数组的大小相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16408915/

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