c语言 我char 【80】了一个字符串怎么删除最后一个值急急急 c语言中如何在字符串中删除字符 不用函数 急急急!

C\u8bed\u8a00\u600e\u4e48\u53bb\u6389\u5b57\u7b26\u4e32\u6700\u540e\u4e00\u4e2a\u5b57\u7b26\uff1f

char *p = a;
while(*p++) ;
p--;//\u6307\u9488\u540e\u9000\u4e00\u4e2a\u4f4d\u7f6e\uff0c\u8fd9\u65f6\u6307\u5411\u4e86\u5b57\u7b26\u4e32\u7684\u6700\u540e\u4e00\u4e2a\u975e\u7a7a\u5b57\u7b26\u3002
if(*p == '\\') *p = 0;
//\u987a\u4fbf\u8bf4\u4e00\u4e0b\uff0c\u5b57\u7b26\u4e32\u4e2d\u5b57\u7b26 \ \u8981\u7528\u8f6c\u4e49\u5b57\u7b26\u6765\u8868\u793a\uff0c\u5373 \\

main(){char str[30];char ch;int i;gets(str);scanf("%d",&i);scanf("%c",&ch);for(i=0;ichar fun(char str[20],char ch){ int i,j; for(i=0;str[i]!='\0';i++) if(str[i]==ch) {for(j=i;str[j]!='\0';j++) str[j]=str[j+1]; }}void main(){ char str[20],ch; printf("enter a string :"); gets(str); printf("enter you want delete letter : "); ch=getchar(); fun(str,ch); printf("%s",str);}

这个是非常方便的。只要你明确知道char数组存放字符串的格式就可以了。它是在字符串的最后一个字符的下一个字符处,存放一个“串尾符”即'\0'。
所以,只要找到这个“串尾符”----'\0',然后再把它的前一个字符(即原字符串的最后一个字符)修改为'\0',就可以啦!
#include
#include
int main()
{ char s[80]="Good morning!",*p;
printf("原来的字符串是:%s
",s);
for(p=s;*p;p++);
*(p-1)='\0';
printf("改短的字符串是:%s
",s);
return 0;
}


也可以直接使用库函数string.h来确定串尾符的下标,然后把它的前一位元素置为'\0'就可以了,更为方便:
#include
#include
int main()
{ char s[80]="Good morning!";
printf("原来的字符串是:%s
",s);
s[strlen(s)-1]='\0';
printf("改短的字符串是:%s
",s);
return 0;
}
两个程序运行的结果都是一样的:



扩展阅读:c语言代码生成器 ... charlotte s web ... char c 65 ... c语言char ch什么意思 ... char a[10] ... char c 72 ... c语言char输出 ... chester charles官网 ... char & ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网