字符指针和空间搜索

标签 c pointers char

我有一个非常简单的实验任务要做,我需要做的就是打印出字符串中的字符两次,除非它是空格。

由于我似乎无法弄清楚的原因,“echoString”函数正在无限循环。

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main(){

char* rhyme1 = "Hey Diddle diddle the Cat and the fiddle";
char rhyme2[265];
strncpy (rhyme2, "The Cow Jumped Over The Moon", sizeof(rhyme2));
char wordList[8][100];

/*Q1: Length of the string rhyme?*/
printf("Length: %d", strlen(rhyme1) );

/*Q2: Print out each letter twice, except for the spaces*/
echoString(rhyme1);

}

void echoString ( char* pString ) {

while ( *pString != '\0' ) {

    if ( !isspace( *pString ) ) {
        printf("%s%s", *pString, *pString);
    }
    else {
        printf("%s", *pString);
    }
    pString++;
}
}

我感觉这与我如何递增指针或 isspace 函数有关。

感谢您的宝贵时间。

编辑:将“/0”更改为“\0”。因为没有看到这一点而感到愚蠢。

最佳答案

  1. \0 用于空终止字符,而不是 /0。将 '/0' 更改为 '\0'

  2. 使用 %c 打印 char,而不是 %s,后者用于打印改为字符串。将所有 %s 更改为 %c

关于字符指针和空间搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26325778/

相关文章:

c - 这两个指针声明有什么区别?

c# - 在应用程序之间发送套接字 c#

c - 使用 malloc 初始化 char 指针 VS 不使用 malloc 直接将字符串赋给 char 指针

c - 为什么这个数组不报错?

c - Atoi 函数给我随机数

c - 如果我知道变量的地址,变量类型的字节大小的目的是什么?

c++ - 深入理解strcat和strlen函数

不能声明一个 size=var 的字符串,即使 var 是 const

c - 在 C 中分配二维字符矩阵的奇数输出

c - 递归函数,它接受一个数组并以相反的顺序显示元素