怎样在C语言中修改字符串的一个字符的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样在C语言中修改字符串的一个字符的值相关的知识,希望对你有一定的参考价值。

根据字符串存储的变量的不同,方法不同,参考代码:
存储在char数组中(支持C/C++)
char
str[]="hello"
;
int
i;
for(
i=0;str[i];i++
)
printf("%c\n",
str[i]
);
//以数组方式引用一个字符:str[i]
for(
i=0;*(str+i);i++
)
printf("%c\n",
*(str+i)
);
//以指针方式引用一个字符:*(str+i)
存储在string中(仅支持C++)
string
str="abcde";
for(string::iterator
iter
=
s.begin();
iter!=s.end();
iter++)
//使用迭代器

cout<<*iter<<endl;

cout<<endl;
for(
int
i=0;i<s.length();i++
)

cout<<s[i]<<endl;
//使用数组方式调用,得到单个元素
参考技术A 你那样定义出来的字符串a是个常量字符串,是无法修改其中的字符的。
你需要定义成普通的字符串,比如
char
a[]
=

"abcdefg";
然后再修改其中的某个字符的值。
参考技术B 独孤九剑碧血剑回答正确。注意char
*a="abcdef"与char
a[]="abcdef"的区别:1、字符串存放的内存区域不同:前者存放在常量区,不可修改,后则存放在栈中,可以修改;2、变量a存放的内容不同:前者存放的是一个地址,而后者存放的是字符串"abcdef",因此使用sizeof它们的结果是不同的,分别是4和7;
参考技术C 通不过的原因是指针a指向的是一个静态字符串“abcdefg”,而静态变量的值是不允许修改的。
改一下定义就可以了,
char
*a=['a','b','c','d','e','f','g'];本回答被提问者采纳
参考技术D 可以自己写一个reverse
函数
void
reverse(char
*s)

int
len
=
strlen(s)/2;
char
t;
for(int
i=0;i
评论
0
0
加载更多

怎样调试C语言的TSR程序

参考技术A 调用方法如下:
函数原型:int
bioskey
(int
cmd)
说明:bioskey()的函数原型在bios.h中
bioskey()完成直接键盘操作,cmd的值决定执行什么操作。
cmd
=
0:
当cmd是0,bioskey()返回下一个在键盘键入的值(它将等待到按下一个键)。它返回一个16位的二进制数,包括两个不同的值。当按下一个普通键时,它的低8位数存放该字符的ASCII码,高8位存放该键的扫描码;对于特殊键(如方向键、F1~F12等等),低8位为0,高8位字节存放该键的扫描码。
cmd
=
1:
当cmd是1,bioskey()查询是否按下一个键,若按下一个键则返回非零值,否则返回0。
cmd
=
2:
当cmd是2,bioskey()返回Shift、Ctrl、Alt、ScrollLock、NumLock、CapsLock、Insert键的状态。各键状态存放在返回值的低8位字节中。
字节位
含义
0
右边Shift键状态
1
左边Shift键状态
2
Ctrl键状态
3
Alt键状态
4
ScrollLock键状态
5
NumLock键状态
6
CapsLock键状态
7
Insert键状态
字节位为1表示该键被按下,为0表示松开。

以上是关于怎样在C语言中修改字符串的一个字符的值的主要内容,如果未能解决你的问题,请参考以下文章

在C语言中怎样判断一个字符串中是不是包含另一个字符串

在C语言中怎样判断一个字符串中是不是包含另一个字符串

怎样用C语言获取屏幕上指定位置处的字符的值?

js怎样将字符串中的特定小写字母转换为大写

c语言中怎样给整型和字符型赋空值(NULL)

C语言,用指针方式定义的字符串为啥不能修改?