3 This file is part of the ARM-Crypto-Lib.
4 Copyright (C) 2006-2010 Daniel Otte (daniel.otte@rub.de)
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
20 * \file string_extras.c
23 * \license GPLv3 or later
33 uint32_t stridentcnt(const char* a, const char* b){
36 if(*a != *b || *b=='\0')
44 uint16_t firstword_length(const char* s){
46 while(isgraph((uint8_t)(*s++)))
51 char* strstrip(char* str){
55 while(*str && (*str==' ' || *str=='\t'))
62 }while(*endptr==' ' || *endptr=='\t');
67 void str_reverse(char* buffer){
71 j=buffer + strlen(buffer)-1;
80 char* ultoa (unsigned long value, char* buffer, uint8_t radix ){
81 if((radix>36) || (radix<2) || (buffer==NULL)){
84 unsigned length=(unsigned)-1;
97 buffer[length+1]='\0';
101 buffer[idx++] = buffer[length];
102 buffer[length--] = c;
107 char* ulltoa(unsigned long long value, char* buffer, uint8_t radix){
108 if((radix>36) || (radix<2) || (buffer==NULL)){
111 unsigned length=(unsigned)-1;
122 buffer[++length] = c;
124 buffer[length+1]='\0';
128 buffer[idx++] = buffer[length];
129 buffer[length--] = c;
134 char* ustoa(unsigned short value, char* buffer, uint8_t radix){
135 if((radix>36) || (radix<2) || (buffer==NULL)){
138 unsigned length=(unsigned)-1;
149 buffer[++length] = c;
151 buffer[length+1]='\0';
155 buffer[idx++] = buffer[length];
156 buffer[length--] = c;
161 void strlwr(char* s){