在C语言中是否有类似于Java的字符串“charAt()”方法的东西?

在C语言中是否有类似于Java的字符串“charAt()”方法的东西?,java,c,Java,C,我试图将一段代码从Java转换为C,但我被困在这里,试图在每个位置获得一个字符 char ch; line += ' '; while (pos < line.length()) { ch = line.charAt(pos); ... 在C语言中,是否有类似的东西可以将行ch=line.charAtpos从java转换为C?您可以像访问数组一样访问这些值 char str[] = "Hello World"; printf("%c", str[0])

我试图将一段代码从Java转换为C,但我被困在这里,试图在每个位置获得一个字符

char ch;

line += ' ';
    while (pos < line.length()) 
    {
      ch = line.charAt(pos);  
...

在C语言中,是否有类似的东西可以将行ch=line.charAtpos从java转换为C?

您可以像访问数组一样访问这些值

char str[] = "Hello World";
printf("%c", str[0]);

您可以通过这种方式在特定位置获取角色

char str[] = "Anything";
printf("%c", str[0]);
但当您有一个指针数组时:

char* an_array_of_strings[]={"balloon", "whatever", "isnext"};
cout << an_array_of_strings[1][2] << endl;
如果需要更改字符串,请使用

char an_array_of_strings[][20]={"balloon", "whatever", "isnext"};
cout << an_array_of_strings[1][2] << endl;

来源:

在C语言中,从字符数组(即字符串)中获取字符的最简单方法

给定您发布的代码中的变量

char ch;

line += ' ';
while (pos < line.length()) 
{
    ch = line.charAt(pos);  
...

修正匹配C定义,漂亮的接球!我用strcatline来转换那行,会有区别吗???您使用strcat转换哪一行?请澄清你的代码中写的是strcatline,,我写的是strcatline,有什么区别?你的评论不正确,两个双引号之间有空格。这将导致数组行[]`在结尾处包含一个或多个字符。strcat将确保结果字符串的末尾仍然包含一个NUL'\0'字节,以终止字符串。区别是什么?双引号是以NUL字符结尾的字符串,单引号是单字符。函数:strcat要求这两个参数都是以NUL结尾的字符数组指针,即指向StringsHanks的指针,用于共享该字符串!
#include <string.h>
strcat( line, " ");
size_t maxPos = strlen( line );
for( pos = 0; pos < maxPos; pos++ )
{
    ch = line[pos];
....