33,311
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
char *foo(char *str);
int main(int argc, char **argv)
{
char *str = "a1b2c3d4e5f6";
char *ret_str = foo(str);
printf("ret_str = %s\n", ret_str);
// Do NOT forget to free the allocated memory.
free(ret_str);
return 0;
}
char *foo(char *str)
{
char *p = NULL, *q = NULL,
*tmp_str = NULL;
int digit_count = 0;
if (NULL == str) {
return NULL;
}
for (p = str; *p != '\0'; ++p) {
if (*p >= '0' && *p <= '9') {
++digit_count;
}
}
tmp_str = (char *) malloc(sizeof(char) * (p - str + digit_count + 1));
if (NULL == tmp_str) {
fprintf(stderr, "Allocate mem for tmp_str failed.");
return NULL;
}
for (p = str, q = tmp_str; *p != '\0'; ++p, ++q) {
if (*p >= '0' && *p <= '9') {
*q++ = '*';
}
*q = *p;
}
*q = '\0';
return tmp_str;
}
#include<stdio.h>
#include<stdlib.h>
char *func(char *str)
{
int mum_cnt = 0;
char *right, *left;
if (NULL == str)
return NULL;
//先计算共有多少个数字字符
for (right = str; *right != '\0'; ++right)
{
if ('0' <= *right && *right <= '9')
{
++mum_cnt;
}
}
left = right;
right += mum_cnt;
*right-- = 0;
//从后往前拷贝
while (left > str)
{
*right-- = *--left;
if ('0' <= *left && *left <= '9')
{
*right-- = '*';
}
}
return str;
}
int main()
{
char src[100] = "654321a1b2c3d4e5f6g123456";
printf("%s\n", func(src));
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
char *func(char *str)
{
int mum_cnt = 0;
char *right, *left;
if (NULL == str)
return NULL;
for (right = str; *right != '\0'; ++right)
{
if ('0' <= *right && *right <= '9')
{
++mum_cnt;
}
}
left = right;
right += mum_cnt;
*right-- = 0;
while (left >= str)
{
*right-- = *--left;
if ('0' <= *left && *left <= '9')
{
*right-- = '*';
}
}
return str;
}
int main()
{
char src[100] = "654321a1b2c3d4e5f6g123456";
printf("%s\n", func(src));
system("pause");
return 0;
}
#include <cstring>
#include <iostream>
using namespace std;
char *fun(char* s){
int i,j;
int len = strlen(s);
for(i=0;i<len;i++){
if((*(s+i))>='0'&& (*(s+i))<='9'){
for(j=len;j>i;j--){
*(s+j+1) = *(s+j);
}
*(s+j+1) = *(s+j);
*(s+i) = '*';
i++;
len++;
}
}
return s;
}
int main(){
char str[100] = "1234565";
fun(str);
cout << str <<endl;
}