/***************************************************************************
*
* Date : 2005-04-20
* Copyright : aucd29
* E-mail : aucd29@daum.net
*
* 해당하는 string을 Upper시켜라
*
***************************************************************************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 100
void strstrUpper(char *, char *);
int main(int argc, char *argv[])
{
int iRes=0;
if(argc < 3)
{
printf("error: argc\n");
exit(0);
}
strstrUpper(argv[1],argv[2]);
printf("Result : %s\n", argv[1]);
return 0;
}
void strstrUpper(char *ps, char *pt)
{
int i,sLen = strlen(ps), tLen=strlen(pt);
int iCnt=0,tmpj=0,tmpi=0,tmpj2,iRes=0,iBreak=0;
int mark=0, j=0;
//
// 내가 만든 방법
//
for(i=0;i<sLen;++i)
{
if(*(ps+i)!=*pt) continue; // 같지 않으면
else
{
// Init
++iCnt;
tmpi = i+1;
tmpj2 = 1;
tmpj = tLen -1;
while(1)
{
//
// <- move
//
if(!mark)
{
if(*(ps+i+tmpj)==*(pt+tmpj))
{
tmpj--;
++iCnt;
mark = 1;
}
else
{
iCnt = mark = 0;
break;
}
}
//
// -> move
//
else
{
if(*(ps+tmpi)==*(pt+tmpj2))
{
++tmpj2;
++tmpi;
++iCnt;
mark = 0;
}
else
{
iCnt = mark = 0;
break;
}
}
if(iCnt==tLen)
{
for(j=i;j<tLen+i;++j)
{
if(*(ps+j)>='a')
*(ps+j) = *(ps+j)+'A'-'a';
}
i += tLen-1;
// ++iRes;
iCnt = mark = 0;
break;
}
}
}
}
// return iRes;
}
*
* Date : 2005-04-20
* Copyright : aucd29
* E-mail : aucd29@daum.net
*
* 해당하는 string을 Upper시켜라
*
***************************************************************************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 100
void strstrUpper(char *, char *);
int main(int argc, char *argv[])
{
int iRes=0;
if(argc < 3)
{
printf("error: argc\n");
exit(0);
}
strstrUpper(argv[1],argv[2]);
printf("Result : %s\n", argv[1]);
return 0;
}
void strstrUpper(char *ps, char *pt)
{
int i,sLen = strlen(ps), tLen=strlen(pt);
int iCnt=0,tmpj=0,tmpi=0,tmpj2,iRes=0,iBreak=0;
int mark=0, j=0;
//
// 내가 만든 방법
//
for(i=0;i<sLen;++i)
{
if(*(ps+i)!=*pt) continue; // 같지 않으면
else
{
// Init
++iCnt;
tmpi = i+1;
tmpj2 = 1;
tmpj = tLen -1;
while(1)
{
//
// <- move
//
if(!mark)
{
if(*(ps+i+tmpj)==*(pt+tmpj))
{
tmpj--;
++iCnt;
mark = 1;
}
else
{
iCnt = mark = 0;
break;
}
}
//
// -> move
//
else
{
if(*(ps+tmpi)==*(pt+tmpj2))
{
++tmpj2;
++tmpi;
++iCnt;
mark = 0;
}
else
{
iCnt = mark = 0;
break;
}
}
if(iCnt==tLen)
{
for(j=i;j<tLen+i;++j)
{
if(*(ps+j)>='a')
*(ps+j) = *(ps+j)+'A'-'a';
}
i += tLen-1;
// ++iRes;
iCnt = mark = 0;
break;
}
}
}
}
// return iRes;
}
'Native > C' 카테고리의 다른 글
[myfun] void strtoupper(char *); 소문자를 대문자로 (0) | 2013.10.02 |
---|---|
[myfun] void strtolower(char *); 대문자를소문자로 (0) | 2013.10.02 |
4-22 문제 (mid) (0) | 2013.10.02 |
4-21일자 mystrcmp2 (0) | 2013.10.02 |
4-21일자 문제 (0) | 2013.10.02 |