如何在c中访问字符串数组中的字符

how to access a character in an array of strings in c

我一直在尝试将字符串数组中的字符串的第一个字母大写我尝试了很多方法,但是 none 其中有效的是我的代码:

 #include <stdio.h>
 #include <stdlib.h>
 int nw=0;
 char words[30][50];
 int main(){
 printf("enter your words when you finish write b\n");
 do{
 nw++;
 scanf("%s",&words[nw]);
 }while(strcmp(&words[nw],"b")!=0);
 printf("%s",toupper(&words[1][0]));
 }

我该怎么办请帮忙

对于初学者,您需要包括 headers <ctype.h><string.h>

#include <ctype.h>
#include <string.h>

声明这些变量没有太大意义

int nw=0;
char words[30][50];

在文件范围内。它们可以在 main.

中声明

而不是这个调用

scanf("%s",&words[nw]);

你至少要写

scanf("%s", words[nw]);

do-while 语句中的条件应类似于

while( nw < 30 && strcmp(words[nw],"b") != 0 );

而不是这个调用'

printf("%s",toupper(&words[1][0]));

你应该写

words[1][0] = toupper( ( unsigned char )words[1][0] );
printf( "%s", words[1] );

这是一个演示程序。

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

int main(void) 
{
    char words[30][50] =
    {
        "hello", "world!"
    };
    
    for ( size_t i = 0; words[i][0] != '[=17=]'; i++ )
    {
        words[i][0] = toupper( ( unsigned char )words[i][0] );
        printf( "%s ", words[i] );
    }
    putchar( '\n' );
    
    return 0;
}

程序输出为

Hello World!