由于 C 中的这些常量空值,我需要帮助

i need help because of these constant nulls in C

这是我的代码,我一直从中得到常量空值,所以我确实需要帮助

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

int main () {       
    char jojo[100];
    
    printf("name: ");
    scanf("[^\n]*c", &jojo);
    printf("Happy Birthday to %s.\n");
    
    printf("\n");       
    return 0;       
}

你可能想要这个:

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

int main() {
  char jojo[100];

  printf("name: ");
  scanf("%s", jojo);                         // use the %s format specifier 
                                             // and remove the &
  printf("Happy Birthday to %s.\n", jojo);   // you forgot 'jojo' as second
                                             // argument to printf
  printf("\n");
  return 0;
}

在评论中说明。

对于 scanf 调用中的初学者

scanf("[^\n]*c", &jojo);

您不得使用指向字符数组的指针。您还需要在转换说明符之前使用符号 '%'

改为

scanf("%[^\n]%*c", jojo);

printf 的调用中,您忘记指定表示数组的参数。

printf("Happy Birthday to %s.\n");

printf("Happy Birthday to %s.\n", jojo);

这是一个演示程序。

#include <stdio.h>

int main(void) 
{
    char jojo[100];
    
    printf( "name: " );
    scanf("%99[^\n]%*c", jojo );

    printf( "Happy Birthday to %s.\n", jojo );
    
    return 0;
}

程序输出可能看起来像

name: programmer Vaustin
Happy Birthday to programmer Vaustin