小编bou*_*osc的帖子

如何从C中的字符串中删除所有出现的给定字符?

我试图从C中的字符串中删除一个字符.我的代码问题是它从字符串中删除了字符的第一个实例,但也擦除了字符串中该字符后的所有内容.例如,从'hello'中删除'l'会打印'he'而不是'heo'

int i;
char str1[30] = "Hello", *ptr1, c = 'l';
ptr1 = str1;
for (i=0; i<strlen(str1); i++)
{
    if (*ptr1 == c) *ptr1 = 0;
    printf("%c\n", *ptr1);
    ptr1++;
}
Run Code Online (Sandbox Code Playgroud)

我需要使用指针,并希望尽可能简单,因为我是C的初学者.谢谢

c string

20
推荐指数
1
解决办法
4万
查看次数

函数的Typedef结构指针(C)

我试图将一个typedef结构指针传递给一个函数,并且编译器正在抱怨此错误消息:错误:未知类型名称'RootP'.这是代码......

int main()
{
    typedef struct Root
    {
        struct Root *child;
    }*RootP;
    RootP rootNode = malloc(sizeof(struct Root));
    rootNode->child = NULL;
    ....

}

void mkdir(RootP rootNode, char param2[60], char pwd[200])
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

c struct pointers typedef function

0
推荐指数
1
解决办法
1189
查看次数

Malloc~Segfault C.

我一直试图弄清楚这段错误已经有一段时间了,通过GDB运行它,当我输入'where'时会出现这种情况:

 #0  0x00007ffff7a9bd4a in ?? () from /lib/x86_64-linux-gnu/libc.so.6
 #1  0x00007ffff7a9dfb5 in malloc () from /lib/x86_64-linux-gnu/libc.so.6
 #2  0x00000000004013d1 in CreateGenetic (cityStart=8, cityNum=9, cityWeights=0x7fffffffd270, 
Genetic=0x604160) at main.c:175
 #3  0x0000000000400cb9 in main (argc=2, argv=0x7fffffffdfd8) at main.c:87
Run Code Online (Sandbox Code Playgroud)

还尝试用-Wall -Wextra -O的参数进行编译,没有任何值得注意的事情.无论如何,这里是代码:

#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <time.h>
typedef struct BruteForce *BF;
typedef struct GeneticAlgorithm *GA;
int Fact(int);
int CreateBrute(int, int, double[20][20], BF);
int Permutations(int, int, int*, int, double**, double[20][20], BF);
int CalcWeight(int, int, int*, double**, double [20][20], BF);
int CreateGenetic(int, int, double [20][20], …
Run Code Online (Sandbox Code Playgroud)

c malloc segmentation-fault

0
推荐指数
1
解决办法
2560
查看次数

标签 统计

c ×3

function ×1

malloc ×1

pointers ×1

segmentation-fault ×1

string ×1

struct ×1

typedef ×1