我正在开发一个项目,您可以在其中输入名称并打印首字母。当我尝试比较字符串时,我得到一个"期望的表达式"错误。我做错了什么?
#include <stdio.h>
#include <stdlib.h>
#include <cs50.h>
#include <string.h>
#include <ctype.h>
int main(void) {
printf("Name: ");
string name = GetString();
printf("\n");
int length = strlen(name);
string compair1 = " ";
for(int l = 0;l<=length;l++) {
char compair2 = name[l];
int res = strcmp(compair1,&compair2);
if(res == 0) {
printf("found blank space");
}
}
}
答案 0 :(得分:2)
如果您想寻找空间,那么您可以这样做:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main(void)
{
printf("Name: ");
char name[20];
gets(name);
printf("\n");
int length = strlen(name);
for(int l = 0;l < length;l++)
{
if(name[l] == ' ')
printf("found blank space");
}
}
答案 1 :(得分:0)
你应该查找strtok()
。这是一个例子。
#include <string.h>
#include <stdio.h>
int main()
{
char str[] = "Bufford T Justice";
char *token;
char space = ' ';
int count = 0;
token = strtok(str, &space);
while( token != NULL )
{
printf( "%s\n", token );
token = strtok(NULL, &space);
if( token )
{
count++;
}
}
printf("Number of spaces = %d\n", count);
return(0);
}
从这个片段中确定输入名称的首字母只是少数几行。
注意:如果您不希望strtok()
修改字符串,则可以使用strchr()
进行一些小的更改。