示例#1
0
extern OSErr get_file_spec(
  FSSpec *spec,
  short listid,
  short item,
  short pathsid)
{
  Str255 itemstr;
  Str255 pathstr;
  int i,n;
  OSErr err;
  int itemlen,pathlen;

  getpstr(itemstr,listid,item);
  err=FSMakeFSSpec(0,0,itemstr,spec);
  if (err==noErr) {
    return err;
  }
  itemlen=itemstr[0];
  n=countstr(pathsid);
  for (i=0; i<n; i++) {
    getpstr(pathstr,pathsid,i);
    pathlen=pathstr[0];
    pathstr[0]=pathlen+itemlen;
    memcpy(pathstr+pathlen+1,itemstr+1,itemlen);
    err=FSMakeFSSpec(0,0,itemstr,spec);
    if (err==noErr) {
      return err;
    }
  }
  return fnfErr;
}
示例#2
0
文件: homework13.c 项目: cwj/myNCCL
int main(void)
{
	int i;
	char str[100];

	printf("input a string");
	scanf("%s",str);
	
	i=0;
	while (str[i]!='\0')
	{
		countstr(str[i]);
	}

	return 0;
}
示例#3
0
//replace every occurrence of str1 with str2 a maximum of num times
unsigned string::replacestr(const char* str1,const char* str2,unsigned size1,unsigned size2,unsigned num){
	unsigned c=countstr(str1,size1);
	if(datalen+(size2-size1)*c>datasize){
		resizedata(((size2-size1)*c)<<1);}
	unsigned x,pos=0,n=0;
	while(pos<=datalen && n<num){
		for(x=0;x<size1 && pos<=datalen;++x,++pos){
			if(data[pos]!=str1[x]){
				break;}}
		if(x==size1){
			memmove(data+pos+size2-size1,data+pos,datalen+size2-size1);
			memcpy(data+pos-size1,str2,size2);
			++n;}
		else{
			++pos;}}
	datalen+=(size2-size1)*n;
	return n;}
示例#4
0
short HOpenResFilePath(
	short vRefNum,
	long dirID,
	ConstStr255Param fileName,
	char permission,
	short resource_number)
{
	short hndl= HOpenResFile(vRefNum, dirID, fileName, permission);
	short path_count= countstr(resource_number);
	Str255 new_filename;
	short i;
	
	for (i= 0; i<path_count && hndl==NONE; ++i)
	{
		getpstr((char *)new_filename, resource_number, i);
		pstrcat(new_filename, (unsigned char *) fileName);
		
		hndl= HOpenResFile(0, 0, new_filename, permission);
	}
	
	return hndl;
}
示例#5
0
OSErr HOpenPath(
	short vRefNum,
	long dirID,
	ConstStr255Param fileName,
	char permission,
	short *refNum,
	short resource_number)
{
	OSErr error= HOpen(vRefNum, dirID, fileName, permission, refNum);
	short path_count= countstr(resource_number);
	Str255 new_filename;
	short i;
	
	for (i= 0; i<path_count && error!=noErr; ++i)
	{
		getpstr((char *)new_filename, resource_number, i);
		pstrcat(new_filename, (unsigned char *) fileName);
		
		error= HOpen(0, 0, new_filename, permission, refNum);
		if (error==noErr) pstrcpy((char *) fileName, (const char *)new_filename);
	}
	
	return error;
}
示例#6
0
unsigned string::count(const string& str) const{
	return countstr(str.data,str.datalen);}
示例#7
0
unsigned string::count(const char* str) const{
	return countstr(str,strlen(str));}
示例#8
0
//count
unsigned string::count(const char c) const{
	return countstr(&c,1);}