首页 > 其他分享 >c语言转换char字符数组为大写小写

c语言转换char字符数组为大写小写

时间:2024-08-14 14:26:41浏览次数:11  
标签:NULL 小写 int 大写 char Str include datestr

#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <ctype.h>
#include <sys/stat.h>
 
void getdate(char *datestr,char *format)
{
	time_t nnowtime = time(NULL);
	struct tm* ptmTemp = localtime(&nnowtime);
	if (ptmTemp == NULL ||
		!strftime(datestr, 256, format, ptmTemp))
		datestr[0] = '\0';
}

void StrToLower(char * Str)
{
	int len;
	int i;

	if(Str == NULL) 	return;

	len = (int)strlen(Str);
	if(len <= 0)		return;

	for(i=0; i<len; i++)
	{
		if((Str[i] >= 'A') && (Str[i] <= 'Z'))
			Str[i] = 'a' + Str[i] - 'A';
	}
	return;
}

bool StrIsDigit(char * Str)
{
	char digitS[11]="0123456789";
	int  i = 0;
	
	for(i = 0; i < (int)strlen(Str); i++)
	{
		if(strchr(digitS,Str[i]) == NULL)
			return false;
	}
	return true;
}


/**********************************************************************************
*	Function:
*		1. Replace the first 'oldstr' with 'newstr' in 'srcstr'
*	Arguments:
*		IN	:
*			srcstr
*			oldstr
*			newstr
*		OUT	:
*			No
*	Return:
*		1. If find and replace 'oldstr' with 'newstr' in 'srcstr', return 1
*		2. If find no 'oldstr' in 'srcstr', return 0
*		3. If error (malloc return NULL) return -1
***********************************************************************************/
int StrReplace(char * srcstr, const char * oldstr, const char * newstr)
{
	char	*tmpbuffer;
	int		prelen, postlen, totallen, newlen, oldlen;
	char    *ptr;
	char	*tmpchar;

	tmpchar = strstr(srcstr,oldstr);
	if(tmpchar == NULL)	return 0;

	totallen=(int)strlen(srcstr);
	oldlen=(int)strlen(oldstr);
	newlen=(int)strlen(newstr);

	prelen = (int) (tmpchar - srcstr);
	postlen = totallen - prelen - oldlen;
	tmpchar += oldlen;

	tmpbuffer = (char*)malloc(prelen + newlen + postlen+1);
	if(tmpbuffer == NULL)	return -1;

	ptr = tmpbuffer;
	memcpy(ptr, srcstr, prelen);
	ptr += prelen;
	memcpy(ptr, newstr, newlen);
	ptr += newlen;
	memcpy(ptr, tmpchar, postlen);

	tmpbuffer[prelen + newlen + postlen] = 0;
	strcpy(srcstr, tmpbuffer);
	srcstr[prelen + newlen + postlen]=0;
	free((void*)tmpbuffer);
	return 1;
}

/**********************************************************************************
*	Function:
*		1. Change all alphabet to upper case in 'Str'
*	Arguments:
*		IN	:
*			Str
*		OUT	:
*			Str
*	Return:
*		No
***********************************************************************************/
void StrToUpper(char * Str)
{
	int len;
	int i;

	if(Str == NULL)	return;

	len=(int)strlen(Str);
	if(len <=0 ) return;
	for(i=0; i < len; i++)
	{
		if((Str[i] >= 'a')&&(Str[i] <= 'z'))
			Str[i] = 'A' + Str[i] - 'a';
	}
	return;
}


#include <iostream>
using namespace std;
int main()
{
 
    char szdate[64]={0};
    char sztime[64]={0};
    getdate(szdate, "%Y%m%d");
    getdate(sztime, "%H%M%S");
    std::cout<<szdate<<std::endl;
    std::cout<<sztime<<std::endl;
    char a = 'A';
    if(StrIsDigit(&a))
    std::cout<<"ewfa"<<std::endl;
    StrToLower(&a);
    std::cout<<a<<std::endl;
    char str123[100];
    strcpy(str123," my name my your name is hellowrold");
    StrReplace(str123,"my","your");
    StrToUpper(str123);
    StrToLower(str123);
    std::cout<<str123<<std::endl;
    return 0;
}

 

标签:NULL,小写,int,大写,char,Str,include,datestr
From: https://www.cnblogs.com/hshy/p/18358914

相关文章