C语言ASCII问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 15:30:29
怎么用#作为一段数组输入的结束标志(数组是%d类型输入的),怎么用#的ASCII值达到目的

printf("%d",'#');查下#的ASCII值

char a[80]
int n=0,c,d;

while((c=getch())!='#')
{
a[n++]=c;
}
sscanf(a,"%d",&d);
//...

假设是字符串数组:
1. 如果字符串是可改的,扫描'#',并将'#'改成'\0'
2. 如果字符串是不可改的,则另外分配一段空间,一遍扫描一遍复制,在扫描到'#'的时候复制'\0'并结束
代码:
1.
char* convert(char* pszInsert)
{
char* p = pszInsert;
while(p && *p)
{
if(*p == '#')
{
*p = '\0';
return pszInsert;
}
p++;
}
return pszInsert;
}

2. // 注意,使用完毕后需要用free释放convert的结果
char* convert(const char* pszInsert)
{
int len = strlen(pszInsert);
char* pszNew = (char*)malloc(len+1);
char* p1 = pszNew, p2 = pszInsert;
while(p2 && *p2)
{
if(*p2 == '#')