C语言几种常用的string函数

#include<stdio.h>
#include<string.h>
#include<assert.h>
char* strcpy(char * destination, const char * source );
char* strcat ( char * destination, const char * source );
int   strcmp ( const char * str1, const char * str2 );
int   mystrncmp( const char *string1, const char *string2, size_t count );
char* mystrncpy( char *strDest, const char *strSource, size_t count ); 
char* mystrncat( char *strDest, const char *strSource, size_t count );
//字符串拷贝函数
char* mystrcpy(char* destination,const char*source){
	assert(destination!=NULL&&source!=NULL);
	char* dest=destination;
	const char* src=source;
	while(*src!='\0'){
		*dest++=*src++;
	}
	*dest=*src;
	return destination;
}
//字符串连接函数
char* mystrcat(char*destination,const char*source){
	assert(destination!=NULL&&source!=NULL);
	char* dest=destination;
	const char * src=source;
	while(*dest!='\0'){
		dest++;
	}
	while(*src!='\0'){
	   *dest++=*src++;
	}
    *dest=*src;
	return destination;
}
//字符串大小比较函数
int mystrcmp(const char *destination,const char* source){
   assert(destination!=NULL&&source!=NULL);
   	while(*destination!='\0'||*source!='\0'){
   		if((*destination-*source)!=0)
   		break;
   		destination++;
   		source++;
	   }
	   return *destination-*source ;	
}
//n个字符串比较 
int my_strncmp( const char *string1, const char *string2, size_t count )
{
	assert(string1!=NULL && string2!=NULL);
	while(count-- != 0)
	{
		if(*string1 - *string2 != 0)
			break;
		string1++;
		string2++;
	}
if(count==0)
	return *--string1 - *--string2;
	else
	return *string1-*string2;
}
//拷贝n个字符 
char* mystrncpy( char *string1, const char *string2, size_t count ){
	assert(string1!=NULL&&string2!=NULL);
	char* dest=string1;
	const char* src=string2;
	while(count--!=0){
		*dest++=*src++;
	}
	return string1;	
}
//连接n个字符 
char* mystrncat( char *string1, const char *string2, size_t count ){
	assert(string1!=NULL&&string2!=NULL);
	char* dest=string1;
	const char*src=string2;
	while(*dest!='\0'){
		dest++;
	}
	while(count--!=0){
     *dest++=*src++;
		}
		*dest='\0';
		return string1;
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 1. 输出一个字符: ```c char ch = 'a'; putchar(ch); // 输出字符 'a' ``` 2. 用循环输出字符串: ```c char str[] = "hello world"; int len = strlen(str); for (int i = 0; i < len; i++) { putchar(str[i]); } // 输出字符串 "hello world" ``` 3. 用递归输出字符串: ```c void print_string(char str[]) { if (*str != '\0') { putchar(*str); print_string(str + 1); } } print_string("hello world"); // 输出字符串 "hello world" ``` 4. 输出多个字符: ```c putchar('h'); putchar('e'); putchar('l'); putchar('l'); putchar('o'); // 输出字符串 "hello" ``` 5. 输出换行符: ```c putchar('\n'); // 换行 ``` 6. 输出制表符: ```c putchar('\t'); // 制表符 ``` ### 回答2: putchar()函数是C语言中的一个输出函数,用于向标准输出流(通常是终端窗口)输出一个字符。其具体的用法有以下几种: 1. 输出单个字符: 可以使用putchar()函数输出一个字符,其语法如下: putchar(字符变量或字符常量); 例如,putchar('A'); 表示输出字符'A'。 2. 输出一串字符: 可以使用循环结构,利用putchar()函数输出一串字符,其语法如下: for(int i = 0; i < 字符串长度; i++){ putchar(字符串[i]); } 例如,输出字符串"Hello",可以使用以下代码: char str[] = "Hello"; for(int i = 0; i < strlen(str); i++){ putchar(str[i]); } 3. 结合输入函数,输出用户输入的字符: 可以利用putchar()函数结合getchar()函数,输出用户在终端窗口输入的字符,其语法如下: char ch; scanf("%c", &ch); putchar(ch); 例如,输出用户输入的字符,可以使用以下代码: char ch; scanf("%c", &ch); putchar(ch); 需要注意的是,putchar()函数只能输出单个字符,如果需要输出字符串或者数字,可以考虑使用puts()函数或printf()函数。此外,putchar()函数的返回值为int类型,用于表示输出的字符的ASCII码值。 ### 回答3: putchar()函数是C语言中的一个标准库函数,用于将一个字符输出到标准输出设备(通常是显示器)上。 putchar()函数有几种常见的用法: 1. 输出单个字符:可以通过传入一个字符型参数来输出单个字符。例如,putchar('A');会将字符'A'输出到屏幕上。 2. 配合循环输出字符串:可以通过在循环中多次调用putchar()函数来逐个输出字符串中的字符。例如,下面的代码会将字符串"Hello World!"逐个字符地输出到屏幕上: ```c char str[] = "Hello World!"; int i; for (i = 0; str[i] != '\0'; i++) { putchar(str[i]); } ``` 3. 从文件中读取字符并输出:putchar()函数可以与文件操作函数联合使用,从文件中读取字符并输出到屏幕上。例如,下面的代码会从一个名为input.txt的文件中读取字符并逐个输出到屏幕上: ```c #include <stdio.h> int main() { FILE* file = fopen("input.txt", "r"); int ch; while ((ch = fgetc(file)) != EOF) { putchar(ch); } fclose(file); return 0; } ``` 总之,putchar()函数是一个非常方便的函数,用于将字符输出到标准输出设备上。无论是输出单个字符、循环输出字符串还是从文件中读取字符并输出,都可以使用putchar()函数来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jhpan666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值