小编Fin*_*a_C的帖子

没有使用strlen时strlen的分段错误?

我有一些代码,它接受一个文件,将每一行读入一个新的字符串数组(并为每个字符添加128),然后将每个数组分配到一个指针数组,然后打印每个数组.尝试运行代码时,由于以下原因,我收到错误,指出了分段错误:

strlen () at ../sysdeps/x86_64/strlen.S:106 106 ../sysdeps/x86_64/strlen.S: No such file or directory.

但我从来没有在我的代码中调用strlen?

#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#define ROW 10
#define COL 40
#define ARGS 2
#define FLIP_VALUE 128

char** read_file (char* argv[], char **array_pointers);
char* new_array (void);
void print_strings (char** array_pointers);

int main(int argc, char* argv[])
{
    char **array_pointers = NULL;
    if (argc == ARGS)
    {
        array_pointers = read_file(&argv[1], array_pointers);
        print_strings(array_pointers);
    }
return 0;
}

char** read_file (char* argv[], char **array_pointers)
{
    FILE* file_name;
    int i = …
Run Code Online (Sandbox Code Playgroud)

c arrays string segmentation-fault strlen

3
推荐指数
1
解决办法
1741
查看次数

使用for循环打印特定的"非元音,元音,非元音"字样

我有一个任务是打印由"非元音,元音,非元音"组成的单词列表,即bab,bac,bad,bad ......到zuz.

我设法创建了一个代码,它执行前两个字母但在最后一个循环中丢失并仅打印'}' - 这对我来说似乎很奇怪.代码如下:

#include <stdio.h>
#include <string.h>


int check_vowel(char c);
int check_consonant(char c);
int main ()
{

char c, c2, c3;
int cnt;

for (cnt = 0; cnt <= c; cnt++)
{
    for (c = 'a'; c <= 'z'; c++)
    {
        if (check_vowel(c) == 0)
        {           
            for (c2 = 'a'; c2 <= 'z'; c2++)
            {
                if (check_consonant(c2) == 0)
                {
                    for (c3 = 'a'; c3 <= 'z'; c3++);
                    {
                        if (check_vowel(c3) == 0)
                        {
                        cnt++;
                        printf("%d || %c%c%c\n", …
Run Code Online (Sandbox Code Playgroud)

c for-loop if-statement

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

将字符串中的特定字符转换为大写字母

如何转换字符串中的特定字母,即所有as转换'ahdhkhkahfkahafafkh'为大写?

我似乎只能找到将第一个单词或大写/小写整个字符串大写的方法.

python string uppercase

-3
推荐指数
1
解决办法
84
查看次数