- UID
- 2198
注册时间2005-6-29
阅读权限255
最后登录1970-1-1
副坛主
该用户从未签到
|
群里有人这样一个问题: 输入字符串后 我们如何开辟一个大小合理的空间 以 处理输入的字符串
有几个函数 大家可以看一下
malloc 开辟空间 这个视频里我们讲过
strlen 计算字符串的长度
假如我们输入的是: ChinaPYG! strlen是求该字符串的长度 结果=9 其实该字符串还有一个结束标志 就是'\0' 我们开空间的时候 可以多开一个字节的空间把这个也COPY过去
放一个示例代码,仅处理下大写字母:
#include "stdio.h"
void JiaMi(char *p,int i)
{
while(*p)
{
if(*p >= 'A' && *p<= 'Z')
{
*p++=(*p-'A'+i)%24+'A';
}
}
}
main()
{
char str[50];
char * p;
int i;
gets(str); /*scanf("%s",str);*/
puts(str);
printf("Shuru zifu: %d\n",strlen(str));
p = (char *)malloc(strlen(str)+1);
memcpy(p,str,strlen(str)+1);
puts(p);
printf("Shuru Jiami: ");
scanf("%d",&i);
JiaMi(p,i);
printf("Jiami XiaoGuo: ");
puts(p);
}
想要处理含有非大写字符的字符串, 自己加一行代码即可 ~
C:\tc>test
ChinaPYG!
ChinaPYG!
Shuru zifu: 9
ChinaPYG!
Shuru Jiami: 10
Jiami XiaoGuo: MhinaBKQ!
这个Demo 仅供参考 完整的代码 大家自己去补充下吧 |
|