自己实现字符串常用API

1,实现puts,gets,strlen,memset

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void myPuts(char *p)//*除了变量声明以外,其他都是运算符
{                   //字符串有明显的标志,都是以\0结尾

        while(*p != '\0'){
                putchar(*p++);
                //printf("%c",*p++);
        }
        putchar('\n');
}

int myGets(char *p)
{
        int cet=0;
        if(p == NULL){
                printf("内存非法\n");
                return;
        }
        while(*p = getchar())
        {
                if(*p == '\n'){
                        return cet;
                }
                else{
                        cet++;
                        p++;
                }
        }
}

int myStrlen(char *p)
{
        int cnt = 0;
        while(*p++ != '\0'){  
                cnt++;
        }
        return cnt;
}

void myMemset(char *p,char c,int num)
{       int i;
        /*if(*p++ != '\0'){
          	for(i=0;i<num;i++){
         	*p=c;       
         	}         
         }*/
        while(num){

                *p++=c;
                num--;
        }
}
                        
int main()
{
        char *p = "abcde";
        myPuts(p);

        char str[128]={'\0'};
        puts("请输入字符串:");
        
        int n = myGets(str);
        printf("输入的字符个数是:%d\n",n);
        myPuts(str);

        printf("字符串P长度是:%d\n",myStrlen(p));

        char *str2 = NULL;
        str2 = (char *)malloc(64);
        myMemset(str2,'a',64);
        str2[64] = '\0';//字符串的结束符
        myPuts(str2);

        return 0;
}

2,实现 strcpy,strncpy,strcat

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* myStrcpy(char* des,const char* source)
{
    if(des == NULL && source == NULL){
      return NULL;
    }   
  
     while(*source != '\0'){
          *des++ = *source++;         
     }
      *des = '\0';
      return des;
}

char* myStrncpy(char* des,const char* source,int n)
{
   
    if(des == NULL && source == NULL){
      return NULL;
    }   
  
     while(*source != '\0' && n>0){
          *des++ = *source++; 
          n--;        
     }
      *des = '\0';
      return des;
}

void myStrcat(char *dest,char *src)  
{    
    while(*dest != '\0'){
         dest++;
    }
    while(*src != '\0'){
     *dest++=*src++;
    }
    dest='\0';

}

int main()
{
    char strDest[128] = {'\0'};
    char *src = "hello";
    
    myStrcpy(strDest,src);
    puts(strDest);
    
    myStrncpy(strDest,src,5);
    puts(strDest);
    
    char str[128] = {"gu nian an"};
    myStrcat(str,src);
    puts(str);
    
	return 0;
}

Tips
1,基本都是利用字符串以 '/0’结尾的特性,进行字符串的遍历
2,使用strcat函数进行字符串拼接时,必须保证目标字符串dest有足够的空间写下源字符串src
3,关于strcat用法百度百科

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 对于您的问题,我可以回答。 在 .NET Core 中,可以通过在 appsettings.json 文件中添加一个名为 ConnectionStrings 的配置项来配置连接字符串。例如: ``` "ConnectionStrings": { "DefaultConnection": "Server=localhost;Database=MyDatabase;User Id=MyUsername;Password=MyPassword;" } ``` 然后在应用程序代码中,可以使用 IConfiguration 接口来访问连接字符串。例如: ``` public class MyDbContext : DbContext { private readonly IConfiguration _config; public MyDbContext(IConfiguration config) { _config = config; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer(_config.GetConnectionString("DefaultConnection")); } } ``` 以上示例使用 SQL Server 数据库作为示例,但连接字符串的格式与使用的数据库类型有关。 ### 回答2: 在.NET Core API中配置连接字符串时,我们可以使用appsettings.json文件来存储连接字符串。以下是配置连接字符串的步骤: 1. 打开项目中的appsettings.json文件。 2. 在文件中,找到"ConnectionStrings"部分。如果没有,请自行添加以下内容: ``` "ConnectionStrings": { "DefaultConnection": "你的连接字符串" } ``` 这里,我们使用了"DefaultConnection"作为连接字符串的键,你可以根据实际情况进行更改。 3. 将你的实际连接字符串替换为"你的连接字符串"。 4. 保存并关闭appsettings.json文件。 5. 在Startup.cs文件中的ConfigureServices方法中,添加以下代码来将连接字符串配置绑定到应用程序: ``` services.AddDbContext<YourDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); ``` 这里,我们假设你正在使用Entity Framework Core的DbContext。如果你使用其他数据库提供程序,请相应地更改。 6. 在Startup.cs文件中的Configure方法中,添加以下代码来让应用程序使用连接字符串: ``` using (var scope = app.ApplicationServices.CreateScope()) { var dbContext = scope.ServiceProvider.GetRequiredService<YourDbContext>(); dbContext.Database.Migrate(); } ``` 这将确保在应用程序启动时,数据库迁移将根据连接字符串进行。 配置完成后,你可以使用appsettings.json中的连接字符串来连接到数据库。此外,你还可以通过Configuration.GetConnectionString("DefaultConnection")方法在代码中获取连接字符串。 以上是在.NET Core API中配置连接字符串的简要步骤。根据你实际的使用情况,可能需要进行一些额外的配置或修改。 ### 回答3: 在.NET Core中配置连接字符串可以通过多种方式实现。 一种常用的方式是在appsettings.json文件中配置连接字符串。首先,在项目根目录下的appsettings.json文件中添加一个名为“ConnectionStrings”的节点,再添加一个键值对,键为数据库名称,值为连接字符串。例如: { "ConnectionStrings": { "MyDatabase": "Data Source=myserver;Initial Catalog=mydatabase;User Id=myusername;Password=mypassword;" } } 在代码中,可以使用Configuration对象来读取连接字符串。首先在程序入口处的Startup.cs文件中添加一个属性,例如: public IConfiguration Configuration { get; } 然后在ConfigureServices方法中使用Configuration对象获取连接字符串: public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddDbContext<MyDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("MyDatabase"))); } 这样,就可以在代码中使用连接字符串连接数据库了。 除了appsettings.json,还可以使用环境变量来配置连接字符串。可以在操作系统中或者Docker容器中设置环境变量,然后使用Environment对象来读取连接字符串。例如: string connectionString = Environment.GetEnvironmentVariable("ConnectionStrings_MyDatabase"); 在以上两种方式中,都可以根据需要配置多个连接字符串,并在代码中根据名称进行获取和使用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值