我是编码和学习c语言的初学者,这是我的第一步。 当我使用字符串函数时,程序返回的值不显示输出。使用minGW作为编译器
我尝试添加string.h标头文件夹 串 从下面跟随代码
''''
#include <stdio.h>
#include <conio.h>
int main()
{
/*
int strlen(string);
*/
char name = { 's','i','l','a','m','\0' };
int length;
length = strlen(name);
printf("the length of %s is %d\n", name, length);
getch();
return 0;
}
'''
代码在这里结束
预期打印字符名称的长度,但是崩溃 如在构建日志中 “进程终止,状态为-1073741819” 在构建消息中 警告:传递'strlen'的参数1会使指针从整数开始而不进行强制转换[-Wint-conversion] | 注意:预期为'const char *',但参数的类型为'char'|
感谢您的关注
答案 0 :(得分:2)
您将name
声明为char
,但仍将其视为数组。要将name
声明为char
数组,请使用:
char name[] = { 's','i','l','a','m','\0' };
此外,由于您引用了函数strlen()
,因此必须添加头文件:
#include <string.h>
答案 1 :(得分:0)
享受:
#include <stdio.h>
#include <string.h>
int main()
{
// single char can't store that string
// so we have to declare an array of chars
char name[] = {'s', 'i', 'l', 'a', 'm', '\0'};
// also we can use string literal syntax:
// char name[] = "silam";
int length = strlen(name);
printf("the length of %s is %d\n", name, length);
getc(stdin);
// i don't have <conio.h> so i call 'getc' instead of 'getch'
return 0;
}