tstring.c

来自「Software Development in C: A Practical A」· C语言 代码 · 共 154 行

C
154
字号
#include "TString.h"

void TextStringSetFromTextString(
		text_string *destination,
		const text_string *source)
{
	int i;

	for (i=0;
		 (i<MAX_TEXT_STRING_LENGTH-1) && 
			(source->charString[i]!='\0');
		 i++)
	{
		destination->charString[i]=source->charString[i];
	}
	destination->charString[i]='\0';
	destination->length=i;
}


void TextStringSetFromCharArray(
		text_string *destination,
		const char * const source)
{
	int i;

	for (i=0;
		 (i<MAX_TEXT_STRING_LENGTH-1) && 
			(source[i]!='\0');
		 i++)
	{
		destination->charString[i]=source[i];
	}
	destination->charString[i]='\0';
	destination->length=i;
}


void TextStringConcatenateTextString(text_string *destination,
									 const text_string *string1,
									 const text_string *string2)
{
	int i,j;

	// Copy the characters from string1.
	TextStringSetFromTextString(destination,string1);

	// Copy the characters from string2.
	for (i=string1->length,j=0;
		 (i<MAX_TEXT_STRING_LENGTH-1) && 
			(string2->charString[j]!='\0');
		 i++,j++)
	{
		destination->charString[i]=string2->charString[j];
	}
	destination->charString[i]='\0';
	destination->length=i;
}

void TextStringConcatenateCharArray(text_string *destination,
									const text_string *string1,
									const char * const charArray)
{
	int i,j;

	// Copy the characters from string1.
	TextStringSetFromTextString(destination,string1);

	// Copy the characters from string2.
	for (i=string1->length,j=0;
		 (i<MAX_TEXT_STRING_LENGTH-1) && 
			(charArray[j]!='\0');
		 i++,j++)
	{
		destination->charString[i]=charArray[j];
	}
	destination->charString[i]='\0';
	destination->length=i;
}


text_string *TextStringAppendTextString(
				text_string *string1,
				const text_string *string2)
{
	int i,j;

	// Copy the characters from string2.
	for (i=string1->length,j=0;
		 (i<MAX_TEXT_STRING_LENGTH-1) && 
			(string2->charString[j]!='\0');
		 i++,j++)
	{
		string1->charString[i]=string2->charString[j];
	}
	string1->charString[i]='\0';
	string1->length=i;

	return (string1);
}


text_string *TextStringAppendCharArray(
				text_string *string1,
				const char * const charArray)
{
	int i,j;

	// Copy the characters from string2.
	for (i=string1->length,j=0;
		 (i<MAX_TEXT_STRING_LENGTH-1) && 
			(charArray[j]!='\0');
		 i++,j++)
	{
		string1->charString[i]=charArray[j];
	}
	string1->charString[i]='\0';
	string1->length=i;

	return (string1);
}


text_string *TextStringAppendChar(text_string *string1,
								  const char aCharacter)
{
	if (string1->length<MAX_TEXT_STRING_LENGTH-2)
	{
		string1->charString[string1->length] = aCharacter;
		string1->length++;
		string1->charString[string1->length] = '\0';
	}
	return (string1);
}


int TextStringPrintf(const text_string *source)
{
	return (printf("%s",source->charString));
}


int TextStringScanf(text_string *destination)
{
	return(scanf("%s",destination->charString));
}


int TextStringLength(const text_string *theString)
{
	return (theString->length);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?