字符数组倒序
#includevoid daoxu(char str[]){ int i; char temp; for(i = 0; i < strlen(str) / 2 ; i ++){ temp = str[i]; str[i] = str[strlen(str) - i-1]; str[strlen(str) - i-1] = temp; } }
单词计数
int wordCount(char str[]){
int i;
int count = 0;
int word = 0;
for (i = 0 ; str[i] != ' ' ; i ++)
{
if (str[i] == ' ')
{
word = 0;
}else if (word == 0)
{
word = 1;
count ++;
}
}
return count;
}
字符大写转小写
void mylwr(char str[]){
int i;
for (i = 0 ; str[i] != ' ' ; i ++)
{
if (str[i] >= 'A' && str[i] <= 'Z')
{
str[i] += 'a' - 'A';
}
}
}
字符小写转大写
void myupr(char str[]){
int i;
for (i = 0 ; str[i] != ' ' ; i ++)
{
if (str[i] >= 'a' && str[i] <= 'z')
{
str[i] -= 'a' - 'A';
}
}
}
字符数组计算字符串长度
int mylen(char str[]){
int len;
for (len = 0 ; str[len] != ' ' ; len ++);
return len;
}
字符串连接
void mycat(char str1[],char str2[]){
int i,j;
for (i = 0 ; str1[i] != ' ' ;i++);
for (j = 0 ; str2[j] != ' ' ; j ++)
{
str1[i + j] = str2[j];
}
str1[i + j] = ' ';
}
指定长度串接
void myncat(char str1[],char str2[], int len){
int i,j;
for(i = 0; str1[i] != ' '; i++);
for (j = 0; j < len; j++)
{
str1[i + j] = str2[j];
}
str1[i + j] = ' ';
}
字符数组拷贝
void mycpy(char dst[],char src[]){
int i = 0;
do
{
dst[i] = src[i];
} while (src[i++] != ' ');
}
字符数组指定长度拷贝
void myncpy(char dst[],char src[], int len){
int i;
for (i = 0; i < len; i++)
{
dst[i] = src[i];
}
dst[i] = ' ';
}
找出句子中最长的单词
void longest(char dst[],char src[]){
int i = 0,j;
int count =0;
int max = -1;
do
{
if (src[i] ==' ' || src[i] == ' ')
{
if (count > max)
{
max = count;
for (j = 0; j < count; j++)
{
dst[j] = src[i - count + j];
}
dst[j] = ' ';
}
count = 0;
}else{
count++;
}
} while (src[i++] != ' ');
}
从字符串中提取整形数字
#includeint getint(char str[], int a[]){//从字符串中提取数字并放在数组中 int i = 0; int w = 0; int c = 0; int j, k; do { if (str[i] > '0' && str[i] <= '9') { w++; }else if (w) { j = 0; for (k = w; k > 0; k--) { j *= 10; j += str[i - k] - '0'; } w = 0; a[c] = j; c++; } } while (str[i++] != ' '); return c; } void main(){ char str[100]; int a[100]; int i, j; gets(str); i = getint(str,a); for (j = 0; j < i; j++) { printf("%d ",a[j]); } }
整形、字符数组型转换
#include#include int sumof1(int x)//求一个数转换成二进制以后1的个数 { int countx = 0; while(x) { countx ++; x &= x-1; //每位与一次x - 1;就能消掉最后一个1 } return countx; } void main(){ char c[10]; int i = 999; itoa(i, c, 10);//以10进制转换成字符数组 puts(c); itoa(i, c, 16);//以16进制转换成字符数组 printf("0x%sn", c); itoa(i, c, 8);//以8进制转换成字符数组 printf("0%sn", c); itoa(i, c, 2);//以2进制转换成字符数组 puts(c); i = atoi(c);//再将字符串转成整形 printf("%dn", i); printf("%dn", sumof1(i));//以2进制表示时1的个数 }



