C语言怎么去掉字符串最后一个字符?

char a[50] = "asdjflasdfkj\";
现在我想做个判断,如果最后有 "\" 则去掉,如果没有,还是保持原样,请问怎么写?

char *p = a;
while(*p++) ;
p--;//指针后退一个位置,这时指向了字符串的最后一个非空字符。
if(*p == '\\') *p = 0;
//顺便说一下,字符串中字符 \ 要用转义字符来表示,即 \\
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-21
#include <stdio.h>

int main()
{
  char a[50] = "asdjflasdfkj\\";
  int len = strlen(a);
  if (a[len - 1] == '\\') a[len - 1] = '\0';
  printf("%s\n", a);
  return 0;
}

本回答被提问者采纳
第2个回答  2013-09-09
   int len;
   char a[50]="abcdefgh\\";
   len = strlen(a);
   if(a[len-1] == '\\')
   {
    a[len - 1] = '\0';
   }

第3个回答  2013-09-09
int len = strlen(a);
if(a[len - 1] == '\')
{
a[len - 1] = '\0';
}

C语言怎么去掉字符串最后一个字符?
char *p = a;while(*p++) ;p--;\/\/指针后退一个位置,这时指向了字符串的最后一个非空字符。if(*p == '\\\\') *p = 0;\/\/顺便说一下,字符串中字符 \\ 要用转义字符来表示,即 \\\\

C语言中,如何删除以输出字符串最后一个字符?
要光标倒退一个字符,可以通过输出'\\b'来实现。\\x0d\\x0a'\\b'是C语言转义字符,功能为光标向左移动一位。\\x0d\\x0a\\x0d\\x0a后续输出会覆盖原本的输出。\\x0d\\x0a如\\x0d\\x0aprintf("abc\\bdef");\\x0d\\x0a会输出abdef\\x0d\\x0a需要注意:\\x0d\\x0a1 \\b只是移动光标,并没有删除功能,要删...

求问一个c语言 仅去除字符串前后的*号的函数
\/\/ 调用:trimend(s, '*');\/\/ 参数:scr 源字符串,c字符 需要去除尾部的字符 \/\/ 返回:去掉尾部字符的字符串 char * trimend(char * src, char c){ char *str = src;for(int i = strlen(src)-1; i >= 0; i--){ if(src[i] != c) break;src[i] = '\\0';} return ...

使用C语言如何取去掉一个字符串的首尾字符,新手求教各位大神,多谢啦...
比如用str[999]表示字符数组。算出字符长度,删除str[0]和最后一个字符。include<stdio.h> include<string.h> define n 100 void main(){ char a[n],i,t;scanf("%s",a);t=strlen(a);for(i=0;i<t-1;i++)baia[i]=a[i+1];a[i-1]='\\0';printf("%s",a);} ...

C语言怎么在字符串中删掉最后一个字符
char s[100]={0};fgets(s,sizeof(s),fp);\/\/从fp指向的文件中提出最多100个字符的一行字符。s[strlen(s)-1]='\\0';\/\/让最后一个字符的ASCII码为0,即结束标志。fputs(s,fw);\/\/将s写入fw指向的文件中。

c语言 我char 【80】了一个字符串怎么删除最后一个值急急急
它是在字符串的最后一个字符的下一个字符处,存放一个“串尾符”即'\\0'。所以,只要找到这个“串尾符”---'\\0',然后再把它的前一个字符(即原字符串的最后一个字符)修改为'\\0',就可以啦!#include#includeint main(){ char s[80]="Good morning!",*p;printf("原来的字符串是:%s\\...

c语言如何删除输出的最后的一个字符?
可以通过输出\\b来实现。\\b 是C语言的转义字符之一,其含义为退格(BS),ascii码值为8。 当输出\\b时,其显示效果为光标退后一格。需要注意的是,只是光标退后,并不会删除字符,所以要达到真正的删除效果,还需要再输出一个字符。如果在后退后系统不再输出其它字符,那么需要手动输出一个空白字符来达到...

C语言如何删除文本的最后一个字符
只要先找到字符串的串尾,再把串尾标记前移一位就行了。char *p,s[100]="1234567890";for(p=s;*p;p++);(--p)='\\0';printf("%s\\n",s);

c语言中怎样截取一个字符串的最后一个字符?
include "stdio.h"include "string.h"main(){ char* p ="abcdefg";int len = strlen(p);char* t = &p[len-1];printf("%c\\n",*t);}

C语言去除字符串后面的制定几位数怎么做
简单写个函数就好了。void get(char *p,int n)\/\/参数指针p是指向数组首地址如&a[0].{ int i=0;while(*P!='\\0'){ i++;}\/\/跳出循环后p就指向结束符,向后退一位就是最后一位,结束符可以看做要删除0位 int j=0;while(j<n){j++;i--;} (p+i)='\\0';\/\/把结束符赋值给i位...

相似回答