当前位置: 代码迷 >> C语言 >> 关于转义符
  详细解决方案

关于转义符

热度:354   发布时间:2006-08-15 15:07:37.0
以下是引用youxiaxyz在2006-8-15 10:55:16的发言:
这样并不能解决问题,我给的字符串是任意的,并不是局限上面的那一种。
有没有从根本上解决转义字符的方法,或者更本就没有呢?
等待中。。。。。。。。。。。。。。。。。。。

本质是,假如你在一个字符串里任意一个位置加入\'符号,那这个符号肯定是要消失的,别指望能找到它。
因为当'\'和一个字符连接起来时,例如和x字符,则如果\x是c里存在的转义字符,则输出转义字符,
而如果并不存在\x这个转义,则将\x认为还是x。
因此,要使'\'能存在或找得到,那单写个'\'是不可能的。

唯一的方法是使用"\\"。

[此贴子已经被作者于2006-8-15 15:11:14编辑过]


----------------解决方案--------------------------------------------------------
奥,是这样啊!
那有解决办法吗?
----------------解决方案--------------------------------------------------------
以下是引用Apple_skm在2006-8-15 11:23:11的发言:
用strchr()找出\在字符串中的位置,然后在那个位置设置一个结束符就可以了

我想看一看具体该怎样实现呢?


----------------解决方案--------------------------------------------------------
怎么没有人回答?苦等中。。。。。。。。。。。。。。。。
----------------解决方案--------------------------------------------------------


#include "Stdio.h"
#include "Conio.h"
#include "string.h"

int main(void)
{
char s[20]="dfdfd\\fdfd";
char ch='\\';
char *p=strchr(s,ch);
*p='\0';
puts(s);
getch();
return 0;
}


----------------解决方案--------------------------------------------------------
转义字符‘|’,是这样‘\\'
----------------解决方案--------------------------------------------------------

上楼的把我的字符串给改了,不过我自己倒是找到了一个方法就是利用文件的读写,fgetc和fputc函数


----------------解决方案--------------------------------------------------------

#include <stdio.h>
#include <string.h>

#define STRING_LENGTH 20

void main()
{
unsigned char str[STRING_LENGTH];
unsigned int i = 0;

scanf("%s", str);

while(str[i] != '\\')
{
printf("%c", str[i]);
i ++;
}
printf("\n");

while(1)
;
}

其实楼主的问题很好,关于 \ 必须要有一个非常好的解释,也期待高手。
我的方法,有点投机取巧了,但功能实现了:)


----------------解决方案--------------------------------------------------------
  相关解决方案