• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  * Description: 系统适配层字符串接口实现(此文件为DEMO,需集成方适配修改)
15  */
16 #include "hilink_str_adapter.h"
17 #include <stdlib.h>
18 #include <string.h>
19 
HILINK_Strlen(const char * src)20 unsigned int HILINK_Strlen(const char *src)
21 {
22     if (src == NULL) {
23         return 0;
24     }
25     return (unsigned int)strlen(src);
26 }
27 
HILINK_Strchr(const char * str,int ch)28 char *HILINK_Strchr(const char *str, int ch)
29 {
30     if (str == NULL) {
31         return NULL;
32     }
33 
34     return strchr(str, ch);
35 }
36 
HILINK_Strrchr(const char * str,int ch)37 char *HILINK_Strrchr(const char *str, int ch)
38 {
39     if (str == NULL) {
40         return NULL;
41     }
42 
43     return strrchr(str, ch);
44 }
45 
HILINK_Atoi(const char * str)46 int HILINK_Atoi(const char *str)
47 {
48     if (str == NULL) {
49         return 0;
50     }
51     return atoi(str);
52 }
53 
HILINK_Strstr(const char * str1,const char * str2)54 char *HILINK_Strstr(const char *str1, const char *str2)
55 {
56     if ((str1 == NULL) || (str2 == NULL)) {
57         return NULL;
58     }
59     return strstr(str1, str2);
60 }
61 
HILINK_Strcmp(const char * str1,const char * str2)62 int HILINK_Strcmp(const char *str1, const char *str2)
63 {
64     if ((str1 == NULL) && (str2 == NULL)) {
65         return 0;
66     }
67     if ((str1 != NULL) && (str2 == NULL)) {
68         return 1;
69     }
70     if ((str1 == NULL) && (str2 != NULL)) {
71         return -1;
72     }
73 
74     return strcmp(str1, str2);
75 }
76 
HILINK_Strncmp(const char * str1,const char * str2,unsigned int len)77 int HILINK_Strncmp(const char *str1, const char *str2, unsigned int len)
78 {
79     if ((str1 == NULL) && (str2 == NULL)) {
80         return 0;
81     }
82     if ((str1 != NULL) && (str2 == NULL)) {
83         return 1;
84     }
85     if ((str1 == NULL) && (str2 != NULL)) {
86         return -1;
87     }
88 
89     return strncmp(str1, str2, len);
90 }