小编PyR*_*kie的帖子

如何为没有空字符的字符串计算strlen?

此代码返回n = 11,第10和第11个字符为''和'@'这是如何工作的?strlen函数如何将其视为11个字符?在某些编译器中,似乎需要字符串长度为12个字符.

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

void fun(char *arr)
{
   int i;
   unsigned int n = strlen(arr);
   printf("n = %d\n", n);
   for (i=0; i<n; i++)
     printf("%c  ", arr[i]);
}

int main()
{
   char arr[] = {'g', 'e', 'e', 'k', 's', 'q', 'u', 'i', 'z'};
   fun(arr);
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

c string c-strings string-length strlen

2
推荐指数
1
解决办法
936
查看次数

我可以不更改函数内的列表吗?

# left rotate using slicing
def leftRotate(arr, k, n):
    arr = arr[k:] + arr[:k]
    print(arr)

arr = [1, 2, 3, 4, 5, 6, 7] 
leftRotate(arr, 2, 7) 
print(arr)
Run Code Online (Sandbox Code Playgroud)

结果:

[3, 4, 5, 6, 7, 1, 2]
[1, 2, 3, 4, 5, 6, 7]
Run Code Online (Sandbox Code Playgroud)

当我在函数外部打印数组时,它不再旋转,并保持原来的状态.有人能帮助我理解这个吗?

python list

1
推荐指数
1
解决办法
109
查看次数

printf如何更改函数的返回值?

使用printf语句printf("new s3 string (in locate function) is \"%s\" \n",s3),代码可以正常工作

但是当printf("new s3 string (in locate function) is \"%s\" \n",s3)评论时,代码返回null

如何printf影响return价值?

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

char * locate(char * s1,char * s2,int index) 
{
    printf("s1 string is \"%s\" \n",s1);
    printf("s2 string is \"%s\" \n",s2);

    int i=0,j=0, k;
    char s3[100];    

    while(i<=index)
    {
        s3[i]=s1[i];
        i++;
    }
    k=i;

    while(s2[j]!='\0')
    {
        s3[i]=s2[j];
        i++; j++;
    }

    while(s1[k]!='\0')
    {
        s3[i]=s1[k];
        i++;k++;
    }

    s3[i]='\0';

    //printf("new s3 string (in locate function) …
Run Code Online (Sandbox Code Playgroud)

c

0
推荐指数
1
解决办法
157
查看次数

标签 统计

c ×2

c-strings ×1

list ×1

python ×1

string ×1

string-length ×1

strlen ×1