这个是非常方便的。只要你明确知道char数组存放字符串的格式就可以了。它是在字符串的最后一个字符的下一个字符处,存放一个“串尾符”即'\0'。
所以,只要找到这个“串尾符”----'\0',然后再把它的前一个字符(即原字符串的最后一个字符)修改为'\0',就可以啦!
#include
#include
int main()
{ char s[80]="Good morning!",*p;
printf("原来的字符串是:%s\n",s);
for(p=s;*p;p++);
*(p-1)='\0';
printf("改短的字符串是:%s\n",s);
return 0;
}
也可以直接使用库函数string.h来确定串尾符的下标,然后把它的前一位元素置为'\0'就可以了,更为方便:
#include
#include
int main()
{ char s[80]="Good morning!";
printf("原来的字符串是:%s\n",s);
s[strlen(s)-1]='\0';
printf("改短的字符串是:%s\n",s);
return 0;
}
两个程序运行的结果都是一样的: