我将非常感谢并感谢能够帮助我帮助我的他/她。它与C / C ++类似。
int string_length;
char *str;
str="Muhammad ashikuzzaman";
printf("%c",str[1]);
str[1]='o'; // Here an Unhandled Exception occurred
printf("%c",str[1]);
在第6行或可能在5中发生未处理的异常并且输出未显示。我需要更改字符指针的任何特定字符。请帮帮我。
答案 0 :(得分:7)
字符串文字在C和C ++中是不可变的。也就是说,任何修改它们的尝试都会导致程序的未定义行为。而不是这些陈述
char *str;
str="Muhammad ashikuzzaman";
使用这个
char str[] = "Muhammad ashikuzzaman";
关于指针str的定义和初始化,C ++中的正确代码看起来像
const char *str;
str="Muhammad ashikuzzaman";
C ++中的字符串文字具有常量字符数组的类型。
答案 1 :(得分:0)
int string_length;
char *str,*str2,ch;
str="Muhammad ashikuzzaman";
str2=str;
string_length=strlen(str);
str=(char*)malloc(string_length*sizeof(char));
for(int i=0;i<string_length;i++)
{
if(i==1)
*(str+i)='o';
else *(str+i)=str2[i];
}
for(int i=0;i<string_length;i++)
printf("%c",*(str+i));
答案 2 :(得分:0)
字符串在c / c ++ / java / python中是不可变的。不允许字符串中的某个字符。
Using character pointer strings is stored in two ways.
1.Read only string in a shared segment.
2.Dynamically allocated in heap segment.
当字符串值直接分配给指针时,它仅存储在段之间共享的只读段中
char *str = "Helloworld";
以上字符串&#34; Helloworld&#34;存储在共享只读位置,但指针str存储在读写存储器中。您可以将str更改为指向其他内容但在当前str中无法更改值。