c

原创 2004年10月28日 11:08:00

// test.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <process.h>
#include <iostream.h>
#include <malloc.h>

typedef struct List
{
 void   *data;
 struct List *next;

}List;

FILE *stream;
char** f1();
int f2();
int index(char* value,const char *substring);
int f3();
char* substring(const int start, const unsigned int end);
int split(char string[],const char *chars,char* substr[]);
int getList(List *list,int len,char* initData);
char* getArray();


int main( void )
{
// f2();
// f3();
/*
   char*   s= "我this啊 is a string";

   stream = fopen( "c://c1.text", "w" );
   fprintf( stream, "%s", s);
   fclose( stream );
  printf("%s/n",s);
*/
/**************************************
 //unsigned short str[50];
 char str[100];
 char s[]="xmlns";
 stream=fopen( "c://c1.text", "r" );
 while(!feof(stream))
 { 
  fgets(str,100,stream);  //逐行读取
  printf("%s", str);
  printf(".%d",strlen(str));
  char* p1=strstr(str,s);
  if(p1!=NULL)
   printf("%s",p1);
 }
 fclose(stream);
**************************************
 char string[]="akjf,akdjfadfj,djfk";
 char* seps=",a";
 char* s[10];
 int n=split(string,seps,s);
 printf("s=%s/n",s[2]);
 printf("n=%d",n);
   return 1;
   ********************************
 char* text;
 int x=5;
 text=(char*)malloc((x+1)*sizeof(char));
 for(int i=0;i<5;i++)
  text[i]='a';
 text[i]=0;
 printf("%s",text);
 printf("=%d/n",strlen(text));
 printf("%d",sizeof(int));

****************************
 char *str=getArray();
 printf("%s.",str);
******************************/

 List *l ,*p;
 getList(l,15,"123456");
 p=l;
 while(p!=NULL)
 {
  printf("%s/n",(char *)p->data);
 }

 getchar();
 return 0;
}
char* getArray()
{
 //char array[20]="who are you?";
 char *array=(char *)malloc(20);
 strcpy(array,"hehe");
// char *array="hehehehe";
 return array;
}

int getList(List *list,int len,char* initData)
{
 List first,*pList;
 char *dd=(char *)malloc(80);
 if(dd==NULL)
 {
  printf("malloc error!");
  return 0;
 }
 strcpy(dd,initData);
 first.data=(void *)dd;
 first.next=NULL;
 list=&first;

 pList=&first;
 for(int i=1;i<len;i++)
 { List item;
  char *dd1=(char *)malloc(10);
  strcpy(dd1,initData);
  sprintf(dd1,"%d: %s",i,dd);
  item.next=NULL;
  pList->next=&item;
  pList=&item;
 }

 return len;
}

//用字符集中的字符分隔字符串
int split(char string[],const char *seps,char* substr[])
{
 int i=0;
 substr[i]=strtok(string,seps);
// printf("%s/n",substr[i]);
 while(substr[i]!=NULL)
 {
  cout<<substr[i]<<endl;
  i++;
  substr[i]=strtok(NULL,seps);
 }
 return i;
}

//模式匹配:strstr
f2()
{
char str[] =    "tazy";
char string[] = "The quick brown dog jumps over the lazy fox";
char fmt1[] =   "         1         2         3         4         5";
char fmt2[] =   "12345678901234567890123456789012345678901234567890";

   char *pdest;
   int  result;
 result=index(string,str);
 printf("result=%d",result);
 pdest=strstr(string,str);
 printf("%s",pdest);
 return 0;
}
//自定义的子串定位函数
int index(char* value,const char *substring)
{
 char* pIndex=strstr(value,substring);
 int i=pIndex-value+1;
 if(pIndex!=NULL)
  return i-1;
 else
  return -1;
}

f3()
{
 char* s=substring(2,19);
 printf("%s/n",s);
 return 0;
}
//自定义的求子串函数
char* substring(const int start, const unsigned int end)
{
 char* value="The quick brown dog jumps over the lazy fox";
 int length=end-start;
 if(end>strlen(value))
  length=strlen(value)-start;
 char* str=(char*)malloc(length+1);
 strncpy(str,value+start,length);
 strnset(str+length,'/0',1);
 //printf("str.length=%d",end-start+1);
 return str;
}
/*****************************************/

 

JSTL <C:if></C:if> 和<C:ForEach></C:ForEach> 入门级~

JSTL
  • Abubu123
  • Abubu123
  • 2016年06月16日 14:33
  • 10244

c中的# #@ 和##

c/c++的预处理定义:一、Stringizing Operator (#) 在c和c++中数字标志符#被赋予了新的意义,即字符串化操作符。其作用是:将宏定义中的传入参数名转换成用一对双引号括起来参数...
  • Augusdi
  • Augusdi
  • 2014年06月09日 13:49
  • 2775

关于C语言中类似"a<b<c"条件的值

想起上学期在百度上回答的一个C语言问题,如下 ———————————————————————————————————— #include "stdio.h" main() { int a=1,b=2...
  • octobershiner
  • octobershiner
  • 2011年08月03日 13:36
  • 7881

C - C

C - CTime Limit:1000MS Memory Limit:30000KB 64bit IO Format:%lld & %llu SubmitStatus Descr...
  • DTL66
  • DTL66
  • 2016年07月23日 14:19
  • 109

<c:if></c:if>

  • muamomo
  • muamomo
  • 2011年10月17日 11:10
  • 104

C语言实现的全排列算法

程序的主要思路是: 1.把第1个数换到最前面来(本来就在最前面),准备打印1xx,再对后两个数2和3做全排列。 2.把第2个数换到最前面来,准备打印2xx,再对后两个数1和3做全排列。 3.把第...
  • qq_33901297
  • qq_33901297
  • 2016年08月06日 10:16
  • 4996

快速排序的C语言源代码与分析

快速排序的基本思想是: 通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此...
  • guoyong10721073
  • guoyong10721073
  • 2012年09月27日 15:35
  • 30229

c语言之strreplace字符串替换

#include #include #include //https://github.com/ssllab/temper1/blob/722991add4a6a239271e1f029ebe...
  • earbao
  • earbao
  • 2016年06月29日 22:51
  • 3042

<c:if test />来判定两个字符串是否相等

用户管理 用单引号括起来,你要比较的字符串即可。我要实现admin.YKT是否等于字符串‘admin’ 于是表示为:${admin.YKT=='admin'}...
  • wutongyu0123wutongyu
  • wutongyu0123wutongyu
  • 2015年09月11日 14:25
  • 21347

C语言中#和##的用法

今天在学习Uboot的时候遇到cmd_tbl_t __u_boot_cmd_##name Struct_Section = {#name, maxargs, rep, cmd, usage}这条语句。...
  • shy19910509
  • shy19910509
  • 2014年12月19日 17:03
  • 4338
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c
举报原因:
原因补充:

(最多只允许输入30个字)